From 8f6e13bd08d2f37027d34c0f379a79a6c5263e8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Sat, 27 Dec 2014 10:59:19 +0000 Subject: [PATCH] Make the cgo tool do more linking work The cgo directives let us do a lot more than I previously thought, so we can use this to make the building process of git2go go through the go tool directly rather than via the script. libgit2 still needs to be built manually, so we do still require make, but only for building libgit2. Once that's built, any modifications to git2go's own code can be built with go build --- Makefile | 4 ++-- git.go | 2 ++ script/build-libgit2-static.sh | 4 ++-- script/with-static.sh | 12 ------------ 4 files changed, 6 insertions(+), 16 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/git.go b/git.go index 89bd561..6a5562a 100644 --- a/git.go +++ b/git.go @@ -1,6 +1,8 @@ package git /* +#cgo pkg-config: --static --define-variable=libdir=vendor/libgit2/build --define-variable=includedir=vendor/libgit2/include vendor/libgit2/build/libgit2.pc +#cgo LDFLAGS: -lgit2 #include */ import "C" diff --git a/script/build-libgit2-static.sh b/script/build-libgit2-static.sh index 5723721..0a6c39f 100755 --- a/script/build-libgit2-static.sh +++ b/script/build-libgit2-static.sh @@ -4,7 +4,7 @@ set -ex VENDORED_PATH=vendor/libgit2 -cd $VENDORED_PATH && +cd "$VENDORED_PATH" && mkdir -p install/lib && mkdir -p build && cd build && @@ -13,7 +13,7 @@ cmake -DTHREADSAFE=ON \ -DBUILD_SHARED_LIBS=OFF \ -DCMAKE_C_FLAGS=-fPIC \ -DCMAKE_BUILD_TYPE="RelWithDebInfo" \ - -DCMAKE_INSTALL_PREFIX=../install \ + -DCMAKE_INSTALL_PREFIX=. \ .. && cmake --build . 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" - -$@