Skip to content

Commit fdd0687

Browse files
committed
cmake: use FeatureSummary to display which features we end up using
1 parent 99d6ebb commit fdd0687

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

CMakeLists.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ INCLUDE(CheckStructHasMember)
2828
INCLUDE(AddCFlagIfSupported)
2929
INCLUDE(FindPkgConfig)
3030
INCLUDE(FindThreads)
31+
INCLUDE(FeatureSummary)
3132

3233
# Build options
3334
#
@@ -334,3 +335,10 @@ ENDIF ()
334335
IF (BUILD_EXAMPLES)
335336
ADD_SUBDIRECTORY(examples)
336337
ENDIF ()
338+
339+
IF(CMAKE_VERSION VERSION_GREATER 3)
340+
FEATURE_SUMMARY(WHAT ENABLED_FEATURES DISABLED_FEATURES)
341+
ELSE()
342+
PRINT_ENABLED_FEATURES()
343+
PRINT_DISABLED_FEATURES()
344+
ENDIF()

src/CMakeLists.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
IF(DEBUG_POOL)
22
SET(GIT_DEBUG_POOL 1)
33
ENDIF()
4+
ADD_FEATURE_INFO(debugpool GIT_DEBUG_POOL "debug pool allocator")
45

56
# Add the features.h file as a dummy. This is required for Xcode
67
# to successfully build the libgit2 library when using only
@@ -50,6 +51,7 @@ ENDIF(IS_ABSOLUTE ${INCLUDE_INSTALL_DIR})
5051
IF (ENABLE_TRACE STREQUAL "ON")
5152
SET(GIT_TRACE 1)
5253
ENDIF()
54+
ADD_FEATURE_INFO(tracing GIT_TRACE "tracing support")
5355

5456
CHECK_SYMBOL_EXISTS(regcomp_l "regex.h;xlocale.h" HAVE_REGCOMP_L)
5557
IF (HAVE_REGCOMP_L)
@@ -93,6 +95,7 @@ IF(THREADSAFE)
9395
LIST(APPEND LIBGIT2_LIBS ${CMAKE_THREAD_LIBS_INIT})
9496
LIST(APPEND LIBGIT2_PC_LIBS ${CMAKE_THREAD_LIBS_INIT})
9597
ENDIF()
98+
ADD_FEATURE_INFO(threadsafe THREADSAFE "threadsafe support")
9699

97100
IF (SECURITY_FOUND)
98101
IF (SECURITY_HAS_SSLCREATECONTEXT)
@@ -150,28 +153,34 @@ ELSE ()
150153
LIST(APPEND LIBGIT2_LIBS ${CURL_LIBRARIES})
151154
LIST(APPEND LIBGIT2_PC_LIBS ${CURL_LDFLAGS})
152155
ENDIF()
156+
ADD_FEATURE_INFO(cURL GIT_CURL "cURL for HTTP proxy support")
153157
ENDIF()
154158

155159
# Specify sha1 implementation
156160
IF (USE_SHA1DC)
161+
ADD_FEATURE_INFO(SHA ON "using SHA1DC")
157162
SET(GIT_SHA1_COLLISIONDETECT 1)
158163
ADD_DEFINITIONS(-DSHA1DC_NO_STANDARD_INCLUDES=1)
159164
ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_SHA1_C=\"common.h\")
160165
ADD_DEFINITIONS(-DSHA1DC_CUSTOM_INCLUDE_UBC_CHECK_C=\"common.h\")
161166
FILE(GLOB SRC_SHA1 hash/hash_collisiondetect.c hash/sha1dc/*)
162167
ELSEIF (WIN32 AND NOT MINGW)
168+
ADD_FEATURE_INFO(SHA ON "using SHA1_WIN32")
163169
SET(GIT_SHA1_WIN32 1)
164170
FILE(GLOB SRC_SHA1 hash/hash_win32.c)
165171
ELSEIF (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
172+
ADD_FEATURE_INFO(SHA ON "using CommonCrypto")
166173
SET(GIT_SHA1_COMMON_CRYPTO 1)
167174
ELSEIF (OPENSSL_FOUND)
175+
ADD_FEATURE_INFO(SHA ON "using OpenSSL")
168176
SET(GIT_SHA1_OPENSSL 1)
169177
IF (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
170178
LIST(APPEND LIBGIT2_PC_LIBS "-lssl")
171179
ELSE()
172180
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} openssl")
173181
ENDIF ()
174182
ELSE()
183+
ADD_FEATURE_INFO(SHA ON "using generic")
175184
FILE(GLOB SRC_SHA1 hash/hash_generic.c)
176185
ENDIF()
177186

@@ -189,11 +198,13 @@ IF (USE_EXT_HTTP_PARSER AND HTTP_PARSER_FOUND AND HTTP_PARSER_VERSION_MAJOR EQUA
189198
LIST(APPEND LIBGIT2_INCLUDES ${HTTP_PARSER_INCLUDE_DIRS})
190199
LIST(APPEND LIBGIT2_LIBS ${HTTP_PARSER_LIBRARIES})
191200
LIST(APPEND LIBGIT2_PC_LIBS "-lhttp_parser")
201+
ADD_FEATURE_INFO(http-parser ON "http-parser support")
192202
ELSE()
193203
MESSAGE(STATUS "http-parser version 2 was not found or disabled; using bundled 3rd-party sources.")
194204
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/http-parser" "${libgit2_BINARY_DIR}/deps/http-parser")
195205
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/http-parser")
196206
LIST(APPEND LIBGIT2_OBJECTS "$<TARGET_OBJECTS:http-parser>")
207+
ADD_FEATURE_INFO(http-parser ON "http-parser support (bundled)")
197208
ENDIF()
198209

199210
# Optional external dependency: zlib
@@ -207,11 +218,13 @@ IF (ZLIB_FOUND)
207218
ELSE()
208219
SET(LIBGIT2_PC_REQUIRES "${LIBGIT2_PC_REQUIRES} zlib")
209220
ENDIF()
221+
ADD_FEATURE_INFO(zlib ON "Zlib support")
210222
ELSE()
211223
MESSAGE(STATUS "zlib was not found; using bundled 3rd-party sources." )
212224
ADD_SUBDIRECTORY("${libgit2_SOURCE_DIR}/deps/zlib" "${libgit2_BINARY_DIR}/deps/zlib")
213225
LIST(APPEND LIBGIT2_INCLUDES "${libgit2_SOURCE_DIR}/deps/zlib")
214226
LIST(APPEND LIBGIT2_OBJECTS $<TARGET_OBJECTS:zlib>)
227+
ADD_FEATURE_INFO(zlib ON "Zlib support (bundled)")
215228
ENDIF()
216229

217230
# Optional external dependency: libssh2
@@ -233,6 +246,7 @@ IF (LIBSSH2_FOUND)
233246
ELSE()
234247
MESSAGE(STATUS "LIBSSH2 not found. Set CMAKE_PREFIX_PATH if it is installed outside of the default search path.")
235248
ENDIF()
249+
ADD_FEATURE_INFO(SSH GIT_SSH "SSH transport support")
236250

237251
# Optional external dependency: libgssapi
238252
IF (USE_GSSAPI)
@@ -242,6 +256,7 @@ IF (GSSAPI_FOUND)
242256
SET(GIT_GSSAPI 1)
243257
LIST(APPEND LIBGIT2_LIBS ${GSSAPI_LIBRARIES})
244258
ENDIF()
259+
ADD_FEATURE_INFO(SPNEGO GIT_GSSAPI "SPNEGO authentication support")
245260

246261
# Optional external dependency: iconv
247262
IF (USE_ICONV)
@@ -253,6 +268,7 @@ IF (ICONV_FOUND)
253268
LIST(APPEND LIBGIT2_LIBS ${ICONV_LIBRARIES})
254269
LIST(APPEND LIBGIT2_PC_LIBS ${ICONV_LIBRARIES})
255270
ENDIF()
271+
ADD_FEATURE_INFO(iconv GIT_USE_ICONV "iconv encoding conversion support")
256272

257273
IF (SECURITY_FOUND)
258274
SET(GIT_SECURE_TRANSPORT 1)

0 commit comments

Comments
 (0)