diff options
author | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-03-27 21:21:37 -0400 |
---|---|---|
committer | Maxim Cournoyer <maxim.cournoyer@gmail.com> | 2020-05-27 13:46:49 -0400 |
commit | 9ea9e97b9c6d886151f4fd4394c315fda8efa9cb (patch) | |
tree | c37408a46aa26b1c66e9c9fdf4a7131cbfa86e95 /gnu/packages/patches | |
parent | c08f235b12900e8079677fe90d075f03867e0be2 (diff) | |
download | guix-patches-9ea9e97b9c6d886151f4fd4394c315fda8efa9cb.tar guix-patches-9ea9e97b9c6d886151f4fd4394c315fda8efa9cb.tar.gz |
gnu: Add emacs-libgit.
* 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.
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/emacs-libgit-use-system-libgit2.patch | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch new file mode 100644 index 0000000000..4a5546b06b --- /dev/null +++ b/gnu/packages/patches/emacs-libgit-use-system-libgit2.patch @@ -0,0 +1,88 @@ +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 + |