summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Graham <[email protected]>2018-05-08 15:47:34 -0700
committerRyan Graham <[email protected]>2018-08-23 10:45:27 -0700
commitb3256d9058aa93176190cb69f73afb72f0730100 (patch)
tree31abcd4ef8d87b72cecdc242738a46082cd86e94
parent5280ceb7514c7eb4cfcaaf33a13ee580cd9bc2e0 (diff)
static: use pkg-config exclusively when using it
When using the static linking option on platforms that use pkg-config, use ONLY pkg-config to get the CFLAGS and LDFLAGS. This prevents pulling in dependencies and flags for any non-vendored version that may be present on the host. The main practical effect of this is that if someone doesn't need/want any sort of remote access support at all they can completely disable libcurl, libssh2, libssl, etc and produce a smaller/simpler binary and greatly simplify their build-time dependencies. When done properly, the generated pkg-config file will tell cgo everything it needs to know. This also prevents confusion if there is a system copy of libgit2 that is being given priority over the vendored build. Signed-off-by: Ryan Graham <[email protected]>
-rw-r--r--git_static.go5
-rwxr-xr-xscript/build-libgit2-static.sh2
2 files changed, 3 insertions, 4 deletions
diff --git a/git_static.go b/git_static.go
index 6303734..243669f 100644
--- a/git_static.go
+++ b/git_static.go
@@ -3,9 +3,8 @@
package git
/*
-#cgo CFLAGS: -I${SRCDIR}/vendor/libgit2/include
-#cgo LDFLAGS: -L${SRCDIR}/vendor/libgit2/build/ -lgit2
-#cgo windows LDFLAGS: -lwinhttp
+#cgo windows CFLAGS: -I${SRCDIR}/vendor/libgit2/include
+#cgo windows LDFLAGS: -L${SRCDIR}/vendor/libgit2/build/ -lgit2 -lwinhttp
#cgo !windows pkg-config: --static ${SRCDIR}/vendor/libgit2/build/libgit2.pc
#include <git2.h>
diff --git a/script/build-libgit2-static.sh b/script/build-libgit2-static.sh
index 5723721..1568ece 100755
--- a/script/build-libgit2-static.sh
+++ b/script/build-libgit2-static.sh
@@ -16,4 +16,4 @@ cmake -DTHREADSAFE=ON \
-DCMAKE_INSTALL_PREFIX=../install \
.. &&
-cmake --build .
+cmake --build . --target install