Skip to content

Commit 4e84ddd

Browse files
committed
cmake: refactor zlib selection
Move zlib selection into its own cmake module.
1 parent 83fa548 commit 4e84ddd

File tree

2 files changed

+35
-33
lines changed

2 files changed

+35
-33
lines changed

cmake/SelectZlib.cmake

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Optional external dependency: zlib
2+
include(SanitizeBool)
3+
4+
SanitizeBool(USE_BUNDLED_ZLIB)
5+
if(USE_BUNDLED_ZLIB STREQUAL ON)
6+
set(USE_BUNDLED_ZLIB "Bundled")
7+
endif()
8+
9+
if(USE_BUNDLED_ZLIB STREQUAL "OFF")
10+
find_package(ZLIB)
11+
if(ZLIB_FOUND)
12+
list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS})
13+
list(APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES})
14+
if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
15+
list(APPEND LIBGIT2_PC_LIBS "-lz")
16+
else()
17+
list(APPEND LIBGIT2_PC_REQUIRES "zlib")
18+
endif()
19+
add_feature_info(zlib ON "using system zlib")
20+
else()
21+
message(STATUS "zlib was not found; using bundled 3rd-party sources." )
22+
endif()
23+
endif()
24+
if(USE_BUNDLED_ZLIB STREQUAL "Chromium")
25+
add_subdirectory("${libgit2_SOURCE_DIR}/deps/chromium-zlib" "${libgit2_BINARY_DIR}/deps/chromium-zlib")
26+
list(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/chromium-zlib")
27+
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:chromium_zlib>)
28+
add_feature_info(zlib ON "using (Chromium) bundled zlib")
29+
elseif(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
30+
add_subdirectory("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
31+
list(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
32+
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
33+
add_feature_info(zlib ON "using bundled zlib")
34+
endif()

src/CMakeLists.txt

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -99,42 +99,10 @@ include(SelectHTTPParser)
9999
include(SelectRegex)
100100
include(SelectSSH)
101101
include(SelectWinHTTP)
102+
include(SelectZlib)
102103

103104
target_sources(git2internal PRIVATE ${SRC_SHA1})
104105

105-
# Optional external dependency: zlib
106-
SanitizeBool(USE_BUNDLED_ZLIB)
107-
if(USE_BUNDLED_ZLIB STREQUAL ON)
108-
set(USE_BUNDLED_ZLIB "Bundled")
109-
endif()
110-
111-
if(USE_BUNDLED_ZLIB STREQUAL "OFF")
112-
find_package(ZLIB)
113-
if(ZLIB_FOUND)
114-
list(APPEND LIBGIT2_SYSTEM_INCLUDES ${ZLIB_INCLUDE_DIRS})
115-
list(APPEND LIBGIT2_LIBS ${ZLIB_LIBRARIES})
116-
if(APPLE OR CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
117-
list(APPEND LIBGIT2_PC_LIBS "-lz")
118-
else()
119-
list(APPEND LIBGIT2_PC_REQUIRES "zlib")
120-
endif()
121-
add_feature_info(zlib ON "using system zlib")
122-
else()
123-
message(STATUS "zlib was not found; using bundled 3rd-party sources." )
124-
endif()
125-
endif()
126-
if(USE_BUNDLED_ZLIB STREQUAL "Chromium")
127-
add_subdirectory("${libgit2_SOURCE_DIR}/deps/chromium-zlib" "${libgit2_BINARY_DIR}/deps/chromium-zlib")
128-
list(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/chromium-zlib")
129-
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:chromium_zlib>)
130-
add_feature_info(zlib ON "using (Chromium) bundled zlib")
131-
elseif(USE_BUNDLED_ZLIB OR NOT ZLIB_FOUND)
132-
add_subdirectory("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
133-
list(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
134-
list(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
135-
add_feature_info(zlib ON "using bundled zlib")
136-
endif()
137-
138106
# Optional external dependency: ntlmclient
139107
if(USE_NTLMCLIENT)
140108
set(GIT_NTLM 1)

0 commit comments

Comments
 (0)