Commit a0b0b808 by Henry Kleynhans

cmake: Allow user to select bundled zlib

Under some circumstances the installed / system version of zlib may not
be desirable due to being too old or buggy.  This patch adds the option
`USE_BUNDLED_ZLIB` that will cause the bundled version of zlib to be
used.

We may also want to add similar functionality to allow the user to
select other bundled 3rd-party dependencies instead of using the system
versions.

/cc @pks-t @ethomson
parent 0393ecc6
......@@ -55,6 +55,7 @@ OPTION( ENABLE_WERROR "Enable compilation with -Werror" OFF )
IF (UNIX AND NOT APPLE)
OPTION( ENABLE_REPRODUCIBLE_BUILDS "Enable reproducible builds" OFF )
ENDIF()
OPTION( USE_BUNDLED_ZLIB "Use the bundled version of zlib" OFF )
IF(MSVC)
# This option is only available when building with MSVC. By default, libgit2
......
......@@ -255,23 +255,27 @@ ELSE()
ENDIF()
# Optional external dependency: zlib
FIND_PACKAGE(ZLIB)
IF (ZLIB_FOUND)
LIST(APPEND LIBGIT2_INCLUDES ${ZLIB_INCLUDE_DIRS})
LIST(APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES})
IF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
LIST(APPEND LIBGIT2_LIBS "z")
LIST(APPEND LIBGIT2_PC_LIBS "-lz")
IF(NOT USE_BUNDLED_ZLIB)
FIND_PACKAGE(ZLIB)
IF(ZLIB_FOUND)
LIST(APPEND LIBGIT2_INCLUDES ${ZLIB_INCLUDE_DIRS})
LIST(APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES})
IF(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
LIST(APPEND LIBGIT2_LIBS "z")
LIST(APPEND LIBGIT2_PC_LIBS "-lz")
ELSE()
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} zlib")
ENDIF()
ADD_FEATURE_INFO(zlib ON "using system zlib")
ELSE()
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} zlib")
MESSAGE(STATUS "zlib was not found; using bundled 3rd-party sources." )
ENDIF()
ADD_FEATURE_INFO(zlib ON "Zlib support")
ELSE()
MESSAGE(STATUS "zlib was not found; using bundled 3rd-party sources." )
ENDIF()
IF(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
ADD_FEATURE_INFO(zlib ON "Zlib support (bundled)")
ADD_FEATURE_INFO(zlib ON "using bundled zlib")
ENDIF()
# Optional external dependency: libssh2
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment