From 9c5fb973fcc1acd7cd55e120fefef101be46e60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 19 Dec 2015 01:30:28 +0100 Subject: [PATCH 1/2] Get rid of the with-static.sh script CGO can perform variable substitution in the directives, so we don't need to use a script to set up the variables; we can let the go tool do it for us. --- Makefile | 4 ++-- README.md | 11 +++++------ git.go | 4 ++++ script/with-static.sh | 12 ------------ 4 files changed, 11 insertions(+), 20 deletions(-) delete mode 100755 script/with-static.sh diff --git a/Makefile b/Makefile index 3040857..39fc558 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ build-libgit2: test: build-libgit2 go run script/check-MakeGitError-thread-lock.go - ./script/with-static.sh go test ./... + go test ./... install: build-libgit2 - ./script/with-static.sh go install ./... + go install ./... diff --git a/README.md b/README.md index 315032f..bd918d6 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ to use a version of git2go which will work against libgit2 v0.22 and dynamically import "github.com/libgit2/git2go" -to use the version which works against the latest release. +to use the 'master' branch, which works against the latest release of libgit2, whichever that one is at the time. ### From `next` @@ -44,15 +44,14 @@ libgit2 uses OpenSSL and LibSSH2 for performing encrypted network connections. F Running the tests ----------------- -For the stable version, `go test` will work as usual. For the `next` branch, similarly to installing, running the tests requires linking against the local libgit2 library, so the Makefile provides a wrapper +For the stable version, `go test` will work as usual. For the `next` branch, similarly to installing, running the tests requires building a local libgit2 library, so the Makefile provides a wrapper that makes sure it's built make test -Alternatively, if you want to pass arguments to `go test`, you can use the script that sets it all up +Alternatively, you can build the library manually first and then run the tests - ./script/with-static.sh go test -v - -which will run the specified arguments with the correct environment variables. + ./script/build-libgit2-static.sh + go test -v License ------- diff --git a/git.go b/git.go index 53b1a12..77394cf 100644 --- a/git.go +++ b/git.go @@ -1,6 +1,10 @@ package git /* +#cgo CFLAGS: -I${SRCDIR}/vendor/libgit2/include +#cgo LDFLAGS: -L${SRCDIR}/vendor/libgit2/build/ -lgit2 +#cgo windows LDFLAGS: -lwinhttp +#cgo !windows pkg-config: --static ${SRCDIR}/vendor/libgit2/build/libgit2.pc #include #include diff --git a/script/with-static.sh b/script/with-static.sh deleted file mode 100755 index 3f60e31..0000000 --- a/script/with-static.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/sh - -set -ex - -export BUILD="$PWD/vendor/libgit2/build" -export PCFILE="$BUILD/libgit2.pc" - -FLAGS=$(pkg-config --static --libs $PCFILE) || exit 1 -export CGO_LDFLAGS="$BUILD/libgit2.a -L$BUILD ${FLAGS}" -export CGO_CFLAGS="-I$PWD/vendor/libgit2/include" - -$@ From 7f426f2435087a35155b4e8b859fb52f09f79a72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 27 Aug 2016 21:58:05 +0200 Subject: [PATCH 2/2] Only test against 1.5 and up Go 1.5 is the first one which supports the variable replacement we're using for the flags. Any older versions aren't supported by the Go team now that 1.7 is out, so you should be on one of these versions. --- .travis.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 79ad168..fb68ca9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,6 @@ sudo: required install: ./script/install-libgit2.sh go: - - 1.1 - - 1.2 - - 1.3 - - 1.4 - 1.5 - 1.6 - 1.7