summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Martín Nieto <[email protected]>2016-11-19 15:48:39 +0100
committerCarlos Martín Nieto <[email protected]>2017-04-14 12:36:42 +0200
commit5001942b59502155fc51b7d315b161c721ea1cf2 (patch)
tree1c964d8ab9a64cd543af294bc5a24ce380c35daa
parent71bdf97227584d5a1e346b0ead8a47c52c7b2c41 (diff)
Allow building statically via the "static" build tag
-rw-r--r--Makefile13
-rw-r--r--git.go9
-rw-r--r--git_dynamic.go14
-rw-r--r--git_static.go17
4 files changed, 44 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 39fc558..9be90e1 100644
--- a/Makefile
+++ b/Makefile
@@ -9,3 +9,16 @@ test: build-libgit2
install: build-libgit2
go install ./...
+
+build-libgit2:
+ ./script/build-libgit2-static.sh
+
+static: build-libgit2
+ go run script/check-MakeGitError-thread-lock.go
+ go test --tags "static" ./...
+
+install-static: build-libgit2
+ go install --tags "static" ./...
+
+test-static: build-libgit2
+ go test --tags "static" ./...
diff --git a/git.go b/git.go
index c032b0a..5181b8b 100644
--- a/git.go
+++ b/git.go
@@ -1,17 +1,8 @@
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 <git2.h>
#include <git2/sys/openssl.h>
-
-#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 25
-# error "Invalid libgit2 version; this git2go supports libgit2 v0.25"
-#endif
-
*/
import "C"
import (
diff --git a/git_dynamic.go b/git_dynamic.go
new file mode 100644
index 0000000..f89d509
--- /dev/null
+++ b/git_dynamic.go
@@ -0,0 +1,14 @@
+// +build !static
+
+package git
+
+/*
+#include <git2.h>
+#cgo pkg-config: libgit2
+
+#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 25
+# error "Invalid libgit2 version; this git2go supports libgit2 v0.25"
+#endif
+
+*/
+import "C"
diff --git a/git_static.go b/git_static.go
new file mode 100644
index 0000000..d0acb3a
--- /dev/null
+++ b/git_static.go
@@ -0,0 +1,17 @@
+// +build static
+
+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 <git2.h>
+
+#if LIBGIT2_VER_MAJOR != 0 || LIBGIT2_VER_MINOR != 25
+# error "Invalid libgit2 version; this git2go supports libgit2 v0.25"
+#endif
+
+*/
+import "C"