diff --git a/CMakeLists.txt b/CMakeLists.txt index 69800be52..e7282ec89 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -160,10 +160,11 @@ if(MSVC) "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjlib-util/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjsip/include;" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/third_party;" - "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjmedia/include" "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/speexdsp/include;" - "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/webrtc-audio-processing" - "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/portaudio/include" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/webrtc-audio-processing;" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/portaudio/include;" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/pjproject/pjmedia/include;" + "${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/include" ) endif() @@ -272,10 +273,10 @@ if(MSVC) ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/speexdsp/lib/libspeexdsp.lib ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/webrtc-audio-processing/build/Release/webrtc-audio-processing.lib ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/portaudio/build/Release/portaudio_static_x64.lib + ${CMAKE_CURRENT_SOURCE_DIR}/contrib/build/libgit2/msvc/Release/git2.lib /ignore:4006" ) set ( CMAKE_STATIC_LINKER_FLAGS ${libAdditionalDependencies} ) -endif() - +endif() \ No newline at end of file diff --git a/compat/msvc/package.json b/compat/msvc/package.json index 5ea8dee54..d4c4193a2 100644 --- a/compat/msvc/package.json +++ b/compat/msvc/package.json @@ -12,7 +12,8 @@ "upnp", "yaml-cpp", "libarchive", - "webrtc-audio-processing" + "webrtc-audio-processing", + "libgit2" ], "configuration": "ReleaseLib_win32", "project_paths": ["ring-daemon.vcxproj"] diff --git a/configure.ac b/configure.ac index ecb266d07..0f456fd73 100644 --- a/configure.ac +++ b/configure.ac @@ -262,6 +262,8 @@ AS_IF([test -d "${TOOLS_DIR}"], dnl Check for zlib PKG_CHECK_MODULES(ZLIB, zlib,, AC_MSG_ERROR([zlib not found])) +PKG_CHECK_MODULES(LIBGIT2, [libgit2 >= 1.1.0],, AC_MSG_ERROR([Missing libgit2 files])) + dnl Check for pjproject PKG_CHECK_MODULES(PJPROJECT, libpjproject,, AC_MSG_ERROR([Missing pjproject files])) diff --git a/contrib/src/libgit2/SHA512SUMS b/contrib/src/libgit2/SHA512SUMS new file mode 100644 index 000000000..2f9c72fb0 --- /dev/null +++ b/contrib/src/libgit2/SHA512SUMS @@ -0,0 +1 @@ +347bb68900181b44fa58a0417506c91383adb965607fce049a5b4c57ac9cc286e0a140d164c339b50fb6cd6951f47757c2917a2df44ba004bfaa4fb643946bb8 libgit2-v1.1.0.tar.gz \ No newline at end of file diff --git a/contrib/src/libgit2/package.json b/contrib/src/libgit2/package.json new file mode 100644 index 000000000..0b5cc6533 --- /dev/null +++ b/contrib/src/libgit2/package.json @@ -0,0 +1,19 @@ +{ + "name": "libgit2", + "version": "v1.1.0", + "url": "https://github.com/libgit2/libgit2/archive/__VERSION__.tar.gz", + "deps": ["zlib"], + "patches": [], + "win_patches": [], + "project_paths": [ + "msvc/src/git2.vcxproj" + ], + "with_env" : "", + "custom_scripts": { + "pre_build": [ + "mkdir msvc & cd msvc & cmake .. -G %CMAKE_GENERATOR% -DUSE_HTTPS=OFF -DCURL=OFF -DBUILD_CLAR=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_SSH=OFF -DWINHTTP=OFF" + ], + "build": [], + "post_build": [] + } +} \ No newline at end of file diff --git a/contrib/src/libgit2/rules.mak b/contrib/src/libgit2/rules.mak new file mode 100644 index 000000000..1a0219a99 --- /dev/null +++ b/contrib/src/libgit2/rules.mak @@ -0,0 +1,29 @@ +# LIBGIT2 +LIBGIT2_VERSION := 1.1.0 +LIBGIT2_URL := https://github.com/libgit2/libgit2/archive/v${LIBGIT2_VERSION}.tar.gz + +PKGS += libgit2 +ifeq ($(call need_pkg,"libgit2 >= 1.1.0"),) +PKGS_FOUND += libgit2 +endif + +DEPS_libgit2 += zlib http_parser + +$(TARBALLS)/libgit2-v$(LIBGIT2_VERSION).tar.gz: + $(call download,$(LIBGIT2_URL)) + +.sum-libgit2: libgit2-v$(LIBGIT2_VERSION).tar.gz + +libgit2: libgit2-v$(LIBGIT2_VERSION).tar.gz .sum-libgit2 + $(UNPACK) + mv libgit2-$(LIBGIT2_VERSION) libgit2-v$(LIBGIT2_VERSION) + $(UPDATE_AUTOCONFIG) + $(MOVE) + +# TODO windows pcre? +.libgit2: libgit2 + cd $< && mkdir -p build && cd build \ + && $(CMAKE) -DCMAKE_C_FLAGS=-fPIC -DCMAKE_INSTALL_PREFIX=$(PREFIX) -DUSE_HTTPS=OFF -DCURL=OFF -DUSE_HTTP_PARSER=system -DBUILD_CLAR=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_SSH=OFF -DREGEX_BACKEND=regcomp .. \ + && $(CMAKE) --build . \ + && $(MAKE) install + touch $@ diff --git a/src/Makefile.am b/src/Makefile.am index 08148bdc9..5c7383415 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -77,9 +77,10 @@ libring_la_LDFLAGS = \ @LIBSWRESAMPLE_LIBS@ \ @LIBSWSCALE_LIBS@ \ @LIBAVUTIL_LIBS@ \ + @LIBGIT2_LIBS@ \ @LIBS@ \ @WEBRTC_LIBS@ \ - $(AM_LDFLAGS) + $(AM_LDFLAGS) if ENABLE_PLUGIN libring_la_LDFLAGS+= \ @@ -112,6 +113,7 @@ libring_la_CFLAGS = \ @LIBAVFILTER_CFLAGS@ \ @LIBSWRESAMPLE_CFLAGS@ \ @LIBSWSCALE_CFLAGS@ \ + @LIBGIT2_CFLAGS@ \ @WEBRTC_CFLAGS@ \ $(AM_CFLAGS)