* gnu/packages/emacs-xyz.scm (emacs-libgit): New variable. * gnu/packages/patches/emacs-libgit-use-system-libgit2.patch: New file. * gnu/local.mk (dist_patch_DATA): Register patch.
		
			
				
	
	
		
			88 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
	
		
			2.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From de3c48d72ec7064e7f0522877fe759c729df0c50 Mon Sep 17 00:00:00 2001
 | 
						|
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
 | 
						|
Date: Wed, 25 Mar 2020 11:32:18 -0400
 | 
						|
Subject: [PATCH] Allow using a system provided libgit2 library
 | 
						|
 | 
						|
Setting the USE_SYSTEM_LIBGIT2 Make or CMake variable (through the
 | 
						|
BUILD_OPTIONS variable) to any value enables using the system library.
 | 
						|
The default behavior of using a bundled copy of libgit2 is unchanged.
 | 
						|
---
 | 
						|
 CMakeLists.txt     |  9 +++++++--
 | 
						|
 Makefile           | 11 +++++++++++
 | 
						|
 src/CMakeLists.txt |  9 +++++++--
 | 
						|
 3 files changed, 25 insertions(+), 4 deletions(-)
 | 
						|
 | 
						|
diff --git a/CMakeLists.txt b/CMakeLists.txt
 | 
						|
index a393d7c..75d6ca6 100644
 | 
						|
--- a/CMakeLists.txt
 | 
						|
+++ b/CMakeLists.txt
 | 
						|
@@ -7,9 +7,14 @@ set(BUILD_SHARED_LIBS OFF CACHE BOOL "shared" FORCE)
 | 
						|
 set(BUILD_CLAR OFF CACHE BOOL "clar" FORCE)
 | 
						|
 set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DEGIT_DEBUG")
 | 
						|
 
 | 
						|
-add_subdirectory(libgit2)
 | 
						|
+if(USE_SYSTEM_LIBGIT2)
 | 
						|
+  find_package(PkgConfig REQUIRED)
 | 
						|
+  pkg_check_modules(git2 REQUIRED IMPORTED_TARGET libgit2)
 | 
						|
+else()
 | 
						|
+  add_subdirectory(libgit2)
 | 
						|
+  find_library(git2 libgit2.a)
 | 
						|
+endif()
 | 
						|
 
 | 
						|
-find_library(git2 libgit2.a)
 | 
						|
 add_subdirectory(src)
 | 
						|
 
 | 
						|
 enable_testing()
 | 
						|
diff --git a/Makefile b/Makefile
 | 
						|
index 8199532..6a6a4e1 100644
 | 
						|
--- a/Makefile
 | 
						|
+++ b/Makefile
 | 
						|
@@ -13,6 +13,13 @@ ifeq ($(UNAME),MSYS)
 | 
						|
 	BUILD_OPTIONS+= -G "MSYS Makefiles"
 | 
						|
 endif
 | 
						|
 
 | 
						|
+# If the variable USE_SYSTEM_LIBGIT2 is set to *any* value, use the
 | 
						|
+# system provided libgit2 library.
 | 
						|
+USE_SYSTEM_LIBGIT2? := \
 | 
						|
+	$(if $(or $(USE_SYSTEM_LIBGIT2),\
 | 
						|
+	 	  $(findstring USE_SYSTEM_LIBGIT2,$(BUILD_OPTIONS))),\
 | 
						|
+		true)
 | 
						|
+
 | 
						|
 ifeq "$(TRAVIS)" "true"
 | 
						|
 ## Makefile for Travis ###################################################
 | 
						|
 #
 | 
						|
@@ -87,7 +94,11 @@ submodule-update:
 | 
						|
 	@git submodule update
 | 
						|
 
 | 
						|
 libgit2:
 | 
						|
+ifeq ($(USE_SYSTEM_LIBGIT2?),)
 | 
						|
 	@git submodule update --init
 | 
						|
+else
 | 
						|
+	@echo "Using the system provided libgit2 library"
 | 
						|
+endif
 | 
						|
 
 | 
						|
 CLEAN  = $(ELCS) $(PKG)-autoloads.el build
 | 
						|
 
 | 
						|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
 | 
						|
index cfb5777..0dbad8a 100644
 | 
						|
--- a/src/CMakeLists.txt
 | 
						|
+++ b/src/CMakeLists.txt
 | 
						|
@@ -13,8 +13,13 @@ if(WIN32)
 | 
						|
   set_target_properties(egit2 PROPERTIES PREFIX lib)
 | 
						|
 endif(WIN32)
 | 
						|
 
 | 
						|
-target_link_libraries(egit2 git2)
 | 
						|
-target_include_directories(egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include")
 | 
						|
+if(USE_SYSTEM_LIBGIT2)
 | 
						|
+  target_link_libraries(egit2 PRIVATE PkgConfig::git2)
 | 
						|
+else()
 | 
						|
+  target_link_libraries(egit2 git2)
 | 
						|
+  target_include_directories(
 | 
						|
+    egit2 SYSTEM PRIVATE "${libgit2_SOURCE_DIR}/include")
 | 
						|
+endif()
 | 
						|
 
 | 
						|
 if(CMAKE_COMPILER_IS_GNUCC)
 | 
						|
   target_compile_options(egit2 PRIVATE -Wall -Wextra)
 | 
						|
-- 
 | 
						|
2.26.2
 | 
						|
 |