-
Notifications
You must be signed in to change notification settings - Fork 108
/
Makefile.libgit2
57 lines (51 loc) · 2.09 KB
/
Makefile.libgit2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
ifndef THIRDPARTYDIR
include ../common/Makefile.lib.extra
endif
include ../../third-party/libgit2.spec
# plugin definitions
LIBGIT2URL:=$(libgit2_spec_download_url)
LIBGIT2LIBNAME:=$(libgit2_spec_product_name_macOS)
LIBGIT2DIR:=$(THIRDPARTYDIR)/$(libgit2_spec_unpack_dir_name)
LIBGIT2ARCHIVE:=$(THIRDPARTYCACHEDIR)/$(libgit2_spec_archive_name)
LIBGIT2LIB:=$(THIRDPARTYINSTALLDIR)/$(LIBGIT2LIBNAME)
LIBGIT2SYMLINKS:=$(libgit2_spec_symlinks_macOS)
# ensure third-party library is built and recognised by plugins
INCDIRS:=$(INCDIRS) $(THIRDPARTYINCLUDEDIR)
EXTRALIBS:=$(EXTRALIBS) $(LIBGIT2LIB)
PLUGINREQS:=$(THIRDPARTYLIBS)
$(LIBGIT2ARCHIVE):
curl -o $(LIBGIT2ARCHIVE) -L $(LIBGIT2URL)
$(THIRDPARTYLIBDIR)/$(LIBGIT2LIBNAME): $(LIBGIT2ARCHIVE)
tar x -f $(LIBGIT2ARCHIVE) -C $(THIRDPARTYDIR)
cd $(LIBGIT2DIR) \
&& cmake \
-DCMAKE_INSTALL_PREFIX=$(THIRDPARTYOUTDIR) \
-DUSE_SSH=ON \
-DCURL=ON \
-DBUILD_CLAR=OFF \
-DOPENSSL_FOUND=ON \
-DLIBSSH2_FOUND=ON \
-DLIBSSH2_INCLUDE_DIRS=$(THIRDPARTYINCLUDEDIR) \
-DLIBSSH2_LIBRARIES=libssh2.1.dylib \
-DCMAKE_C_FLAGS="-m32 -L$(THIRDPARTYLIBDIR) -lssl -lcrypto" \
-DCMAKE_OSX_ARCHITECTURES=i386 \
-DCMAKE_SHARED_LINKER_FLAGS=-Wl,-rpath,@executable_path:@executable_path/Plugins \
&& make \
&& make install
$(LIBGIT2LIB): openssl libssh2 $(THIRDPARTYLIBDIR)/$(LIBGIT2LIBNAME)
cp -f $(THIRDPARTYLIBDIR)/$(LIBGIT2LIBNAME) $(THIRDPARTYINSTALLDIR)
install_name_tool -id "@executable_path/Plugins/$(LIBGIT2LIBNAME)" $(LIBGIT2LIB)
@echo "Installing links"
@for each in $(THIRDPARTYLIBDIR)/$(LIBGIT2SYMLINKS); do \
if [ -L $$each ]; then \
cp -a $$each $(THIRDPARTYINSTALLDIR); \
fi \
done
@echo "Fixing dependency links"
install_name_tool -change "$(THIRDPARTYLIBDIR)/" "@executable_path/Plugins/$(LIBSSH2LIBNAME)" $(LIBGIT2LIB)
# libgit2 has dependencies with libssh2 and openssl libraries (they come in OPENSSLALLLIBNAMES var)
@for each in $(LIBSSH2LIBNAME) $(OPENSSLALLLIBNAMES); do \
install_name_tool -change "$(THIRDPARTYLIBDIR)/$$each" "@executable_path/Plugins/$$each" $(LIBGIT2LIB); \
done
@echo "DONE"
libgit2: $(LIBGIT2LIB)