mirror of
https://git.proxmox.com/git/libgit2
synced 2025-06-24 04:49:09 +00:00
DRY: Add function that adds os-specific libraries to our targets
This commit is contained in:
parent
19a766a201
commit
94243295b2
@ -41,6 +41,17 @@ SET(BIN_INSTALL_DIR bin CACHE PATH "Where to install binaries to.")
|
|||||||
SET(LIB_INSTALL_DIR lib CACHE PATH "Where to install libraries to.")
|
SET(LIB_INSTALL_DIR lib CACHE PATH "Where to install libraries to.")
|
||||||
SET(INCLUDE_INSTALL_DIR include CACHE PATH "Where to install headers to.")
|
SET(INCLUDE_INSTALL_DIR include CACHE PATH "Where to install headers to.")
|
||||||
|
|
||||||
|
FUNCTION(TARGET_OS_LIBRARIES target)
|
||||||
|
IF(WIN32)
|
||||||
|
TARGET_LINK_LIBRARIES(${target} ws2_32)
|
||||||
|
ELSEIF(CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
||||||
|
TARGET_LINK_LIBRARIES(${target} socket nsl)
|
||||||
|
ENDIF ()
|
||||||
|
IF(THREADSAFE)
|
||||||
|
TARGET_LINK_LIBRARIES(${target} ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
ENDIF()
|
||||||
|
ENDFUNCTION()
|
||||||
|
|
||||||
FILE(STRINGS "include/git2/version.h" GIT2_HEADER REGEX "^#define LIBGIT2_VERSION \"[^\"]*\"$")
|
FILE(STRINGS "include/git2/version.h" GIT2_HEADER REGEX "^#define LIBGIT2_VERSION \"[^\"]*\"$")
|
||||||
|
|
||||||
STRING(REGEX REPLACE "^.*LIBGIT2_VERSION \"([0-9]+).*$" "\\1" LIBGIT2_VERSION_MAJOR "${GIT2_HEADER}")
|
STRING(REGEX REPLACE "^.*LIBGIT2_VERSION \"([0-9]+).*$" "\\1" LIBGIT2_VERSION_MAJOR "${GIT2_HEADER}")
|
||||||
@ -172,14 +183,9 @@ FILE(GLOB SRC_GIT2 src/*.c src/transports/*.c src/xdiff/*.c)
|
|||||||
|
|
||||||
# Compile and link libgit2
|
# Compile and link libgit2
|
||||||
ADD_LIBRARY(git2 ${SRC_GIT2} ${SRC_OS} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SHA1} ${WIN_RC})
|
ADD_LIBRARY(git2 ${SRC_GIT2} ${SRC_OS} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SHA1} ${WIN_RC})
|
||||||
|
TARGET_LINK_LIBRARIES(git2 ${SSL_LIBRARIES})
|
||||||
|
TARGET_OS_LIBRARIES(git2)
|
||||||
|
|
||||||
IF (WIN32)
|
|
||||||
TARGET_LINK_LIBRARIES(git2 ws2_32)
|
|
||||||
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
|
||||||
TARGET_LINK_LIBRARIES(git2 socket nsl)
|
|
||||||
ENDIF ()
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(git2 ${CMAKE_THREAD_LIBS_INIT} ${SSL_LIBRARIES})
|
|
||||||
SET_TARGET_PROPERTIES(git2 PROPERTIES VERSION ${LIBGIT2_VERSION_STRING})
|
SET_TARGET_PROPERTIES(git2 PROPERTIES VERSION ${LIBGIT2_VERSION_STRING})
|
||||||
SET_TARGET_PROPERTIES(git2 PROPERTIES SOVERSION ${LIBGIT2_VERSION_MAJOR})
|
SET_TARGET_PROPERTIES(git2 PROPERTIES SOVERSION ${LIBGIT2_VERSION_MAJOR})
|
||||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libgit2.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libgit2.pc @ONLY)
|
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libgit2.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libgit2.pc @ONLY)
|
||||||
@ -221,19 +227,14 @@ IF (BUILD_CLAR)
|
|||||||
WORKING_DIRECTORY ${CLAR_PATH}
|
WORKING_DIRECTORY ${CLAR_PATH}
|
||||||
)
|
)
|
||||||
ADD_EXECUTABLE(libgit2_clar ${SRC_GIT2} ${SRC_OS} ${CLAR_PATH}/clar_main.c ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SHA1})
|
ADD_EXECUTABLE(libgit2_clar ${SRC_GIT2} ${SRC_OS} ${CLAR_PATH}/clar_main.c ${SRC_TEST} ${SRC_ZLIB} ${SRC_HTTP} ${SRC_REGEX} ${SRC_SHA1})
|
||||||
TARGET_LINK_LIBRARIES(libgit2_clar ${CMAKE_THREAD_LIBS_INIT} ${SSL_LIBRARIES})
|
TARGET_LINK_LIBRARIES(libgit2_clar ${SSL_LIBRARIES})
|
||||||
|
TARGET_OS_LIBRARIES(libgit2_clar)
|
||||||
|
|
||||||
IF (MSVC_IDE)
|
IF (MSVC_IDE)
|
||||||
# Precompiled headers
|
# Precompiled headers
|
||||||
SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
|
SET_TARGET_PROPERTIES(libgit2_clar PROPERTIES COMPILE_FLAGS "/Yuprecompiled.h /FIprecompiled.h")
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
|
||||||
IF (WIN32)
|
|
||||||
TARGET_LINK_LIBRARIES(libgit2_clar ws2_32)
|
|
||||||
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "(Solaris|SunOS)")
|
|
||||||
TARGET_LINK_LIBRARIES(libgit2_clar socket nsl)
|
|
||||||
ENDIF ()
|
|
||||||
|
|
||||||
ENABLE_TESTING()
|
ENABLE_TESTING()
|
||||||
ADD_TEST(libgit2_clar libgit2_clar -iall)
|
ADD_TEST(libgit2_clar libgit2_clar -iall)
|
||||||
ENDIF ()
|
ENDIF ()
|
||||||
|
Loading…
Reference in New Issue
Block a user