mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-08-07 06:17:14 +02:00
54 lines
1.9 KiB
Diff
54 lines
1.9 KiB
Diff
From: Jakub Jirutka <jakub@jirutka.cz>
|
|
Date: Mon, 11 Apr 2017 3:23:00 +0200
|
|
Subject: [PATCH] Build both static and dynamic library
|
|
|
|
This is very hack-ish, it makes option BUILD_SHARED_LIBS unusable.
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -28,7 +28,6 @@
|
|
# Build options
|
|
#
|
|
OPTION( SONAME "Set the (SO)VERSION of the target" ON )
|
|
-OPTION( BUILD_SHARED_LIBS "Build Shared Library (OFF for Static)" ON )
|
|
OPTION( THREADSAFE "Build libgit2 as threadsafe" ON )
|
|
OPTION( BUILD_CLAR "Build Tests using the Clar suite" ON )
|
|
OPTION( BUILD_EXAMPLES "Build library usage example apps" OFF )
|
|
@@ -44,6 +43,8 @@
|
|
OPTION( CURL "Use curl for HTTP if available" ON)
|
|
OPTION( DEBUG_POOL "Enable debug pool allocator" OFF )
|
|
|
|
+SET( BUILD_SHARED_LIBS ON )
|
|
+
|
|
IF(DEBUG_POOL)
|
|
ADD_DEFINITIONS(-DGIT_DEBUG_POOL)
|
|
ENDIF()
|
|
@@ -602,7 +603,8 @@
|
|
ENDIF()
|
|
|
|
# Compile and link libgit2
|
|
-ADD_LIBRARY(git2 ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SSH} ${SRC_SHA1} ${WIN_RC})
|
|
+ADD_LIBRARY(objlib OBJECT ${SRC_H} ${SRC_GIT2} ${SRC_OS} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SSH} ${SRC_SHA1} ${WIN_RC})
|
|
+ADD_LIBRARY(git2 SHARED $<TARGET_OBJECTS:objlib>)
|
|
TARGET_LINK_LIBRARIES(git2 ${SECURITY_DIRS})
|
|
TARGET_LINK_LIBRARIES(git2 ${COREFOUNDATION_DIRS})
|
|
TARGET_LINK_LIBRARIES(git2 ${SSL_LIBRARIES})
|
|
@@ -611,6 +613,9 @@
|
|
TARGET_LINK_LIBRARIES(git2 ${ICONV_LIBRARIES})
|
|
TARGET_OS_LIBRARIES(git2)
|
|
|
|
+ADD_LIBRARY(git2_static STATIC $<TARGET_OBJECTS:objlib>)
|
|
+SET_TARGET_PROPERTIES(git2_static PROPERTIES OUTPUT_NAME git2 CLEAN_DIRECT_OUTPUT 1)
|
|
+
|
|
# Workaround for Cmake bug #0011240 (see http://public.kitware.com/Bug/view.php?id=11240)
|
|
# Win64+MSVC+static libs = linker error
|
|
IF(MSVC AND GIT_ARCH_64 AND NOT BUILD_SHARED_LIBS)
|
|
@@ -639,7 +644,7 @@
|
|
ENDIF ()
|
|
|
|
# Install
|
|
-INSTALL(TARGETS git2
|
|
+INSTALL(TARGETS git2 git2_static
|
|
RUNTIME DESTINATION ${BIN_INSTALL_DIR}
|
|
LIBRARY DESTINATION ${LIB_INSTALL_DIR}
|
|
ARCHIVE DESTINATION ${LIB_INSTALL_DIR}
|