Skip to content

Commit 9b04a30

Browse files
authored
Merge pull request libgit2#6084 from libgit2/ethomson/cmake
cmake: cleanups and consistency
2 parents a89db0e + 52693ab commit 9b04a30

File tree

12 files changed

+704
-737
lines changed

12 files changed

+704
-737
lines changed

CMakeLists.txt

+203-201
Large diffs are not rendered by default.

deps/chromium-zlib/CMakeLists.txt

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44
# TODO: The Chromium build file (in deps/chromium-zlib/zlib/BUILD.gn) supports
55
# more platforms (like ARM with NEON), more can be enabled as needed.
66

7-
CMAKE_MINIMUM_REQUIRED(VERSION 3.11)
7+
cmake_minimum_required(VERSION 3.11)
88

99
include(FetchContent)
1010
include(FindGit)
1111

1212
# Ensure that the git binary is present to download the sources.
1313
find_package(Git)
14-
IF(NOT Git_FOUND)
14+
if(NOT Git_FOUND)
1515
message(FATAL_ERROR "git is required to download the Chromium zlib sources")
16-
ENDIF()
16+
endif()
1717

18-
FetchContent_Populate(chromium_zlib_src
18+
fetchcontent_populate(chromium_zlib_src
1919
GIT_REPOSITORY https://chromium.googlesource.com/chromium/src/third_party/zlib.git
2020
GIT_TAG 2c183c9f93a328bfb3121284da13cf89a0f7e64a
2121
QUIET
@@ -31,8 +31,8 @@ disable_warnings(missing-declarations)
3131

3232
# -O3 is also set by the Chromium configuration and has been deemed safe enough
3333
# for them.
34-
SET(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
35-
SET(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
34+
set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O3 -g -DNDEBUG")
35+
set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
3636

3737
# Common definitions.
3838
add_definitions(

deps/ntlmclient/CMakeLists.txt

+31-31
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
1-
FILE(GLOB SRC_NTLMCLIENT "ntlm.c" "ntlm.h" "util.c" "util.h")
2-
LIST(SORT SRC_NTLMCLIENT)
1+
file(GLOB SRC_NTLMCLIENT "ntlm.c" "ntlm.h" "util.c" "util.h")
2+
list(SORT SRC_NTLMCLIENT)
33

4-
ADD_DEFINITIONS(-DNTLM_STATIC=1)
4+
add_definitions(-DNTLM_STATIC=1)
55

6-
DISABLE_WARNINGS(implicit-fallthrough)
6+
disable_warnings(implicit-fallthrough)
77

8-
IF(USE_ICONV)
9-
ADD_DEFINITIONS(-DUNICODE_ICONV=1)
10-
FILE(GLOB SRC_NTLMCLIENT_UNICODE "unicode_iconv.c" "unicode_iconv.h")
11-
ELSE()
12-
ADD_DEFINITIONS(-DUNICODE_BUILTIN=1)
13-
FILE(GLOB SRC_NTLMCLIENT_UNICODE "unicode_builtin.c" "unicode_builtin.h")
14-
ENDIF()
8+
if(USE_ICONV)
9+
add_definitions(-DUNICODE_ICONV=1)
10+
file(GLOB SRC_NTLMCLIENT_UNICODE "unicode_iconv.c" "unicode_iconv.h")
11+
else()
12+
add_definitions(-DUNICODE_BUILTIN=1)
13+
file(GLOB SRC_NTLMCLIENT_UNICODE "unicode_builtin.c" "unicode_builtin.h")
14+
endif()
1515

16-
IF(USE_HTTPS STREQUAL "SecureTransport")
17-
ADD_DEFINITIONS(-DCRYPT_COMMONCRYPTO)
18-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_commoncrypto.c" "crypt_commoncrypto.h")
16+
if(USE_HTTPS STREQUAL "SecureTransport")
17+
add_definitions(-DCRYPT_COMMONCRYPTO)
18+
set(SRC_NTLMCLIENT_CRYPTO "crypt_commoncrypto.c" "crypt_commoncrypto.h")
1919
# CC_MD4 has been deprecated in macOS 10.15.
20-
SET_SOURCE_FILES_PROPERTIES("crypt_commoncrypto.c" COMPILE_FLAGS "-Wno-deprecated")
21-
ELSEIF(USE_HTTPS STREQUAL "OpenSSL")
22-
ADD_DEFINITIONS(-DCRYPT_OPENSSL)
23-
INCLUDE_DIRECTORIES(${OPENSSL_INCLUDE_DIR})
24-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c" "crypt_openssl.h")
25-
ELSEIF(USE_HTTPS STREQUAL "OpenSSL-Dynamic")
26-
ADD_DEFINITIONS(-DCRYPT_OPENSSL)
27-
ADD_DEFINITIONS(-DCRYPT_OPENSSL_DYNAMIC)
28-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c" "crypt_openssl.h")
29-
ELSEIF(USE_HTTPS STREQUAL "mbedTLS")
30-
ADD_DEFINITIONS(-DCRYPT_MBEDTLS)
31-
INCLUDE_DIRECTORIES(${MBEDTLS_INCLUDE_DIR})
32-
SET(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c" "crypt_mbedtls.h")
33-
ELSE()
34-
MESSAGE(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${USE_HTTPS}) for NTLM crypto")
35-
ENDIF()
20+
set_source_files_properties("crypt_commoncrypto.c" COMPILE_FLAGS "-Wno-deprecated")
21+
elseif(USE_HTTPS STREQUAL "OpenSSL")
22+
add_definitions(-DCRYPT_OPENSSL)
23+
include_directories(${OPENSSL_INCLUDE_DIR})
24+
set(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c" "crypt_openssl.h")
25+
elseif(USE_HTTPS STREQUAL "OpenSSL-Dynamic")
26+
add_definitions(-DCRYPT_OPENSSL)
27+
add_definitions(-DCRYPT_OPENSSL_DYNAMIC)
28+
set(SRC_NTLMCLIENT_CRYPTO "crypt_openssl.c" "crypt_openssl.h")
29+
elseif(USE_HTTPS STREQUAL "mbedTLS")
30+
add_definitions(-DCRYPT_MBEDTLS)
31+
include_directories(${MBEDTLS_INCLUDE_DIR})
32+
set(SRC_NTLMCLIENT_CRYPTO "crypt_mbedtls.c" "crypt_mbedtls.h")
33+
else()
34+
message(FATAL_ERROR "Unable to use libgit2's HTTPS backend (${USE_HTTPS}) for NTLM crypto")
35+
endif()
3636

37-
ADD_LIBRARY(ntlmclient OBJECT ${SRC_NTLMCLIENT} ${SRC_NTLMCLIENT_UNICODE} ${SRC_NTLMCLIENT_CRYPTO})
37+
add_library(ntlmclient OBJECT ${SRC_NTLMCLIENT} ${SRC_NTLMCLIENT_UNICODE} ${SRC_NTLMCLIENT_CRYPTO})

deps/pcre/CMakeLists.txt

+88-88
Original file line numberDiff line numberDiff line change
@@ -1,95 +1,95 @@
1-
INCLUDE(CheckIncludeFile)
2-
INCLUDE(CheckFunctionExists)
3-
INCLUDE(CheckTypeSize)
4-
5-
CHECK_INCLUDE_FILE(dirent.h HAVE_DIRENT_H)
6-
CHECK_INCLUDE_FILE(stdint.h HAVE_STDINT_H)
7-
CHECK_INCLUDE_FILE(inttypes.h HAVE_INTTYPES_H)
8-
CHECK_INCLUDE_FILE(sys/stat.h HAVE_SYS_STAT_H)
9-
CHECK_INCLUDE_FILE(sys/types.h HAVE_SYS_TYPES_H)
10-
CHECK_INCLUDE_FILE(unistd.h HAVE_UNISTD_H)
11-
CHECK_INCLUDE_FILE(windows.h HAVE_WINDOWS_H)
12-
13-
CHECK_FUNCTION_EXISTS(bcopy HAVE_BCOPY)
14-
CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
15-
CHECK_FUNCTION_EXISTS(strerror HAVE_STRERROR)
16-
CHECK_FUNCTION_EXISTS(strtoll HAVE_STRTOLL)
17-
CHECK_FUNCTION_EXISTS(strtoq HAVE_STRTOQ)
18-
CHECK_FUNCTION_EXISTS(_strtoi64 HAVE__STRTOI64)
19-
20-
CHECK_TYPE_SIZE("long long" LONG_LONG)
21-
CHECK_TYPE_SIZE("unsigned long long" UNSIGNED_LONG_LONG)
22-
23-
DISABLE_WARNINGS(unused-function)
24-
DISABLE_WARNINGS(implicit-fallthrough)
1+
include(CheckIncludeFile)
2+
include(CheckFunctionExists)
3+
include(CheckTypeSize)
4+
5+
check_include_file(dirent.h HAVE_DIRENT_H)
6+
check_include_file(stdint.h HAVE_STDINT_H)
7+
check_include_file(inttypes.h HAVE_INTTYPES_H)
8+
check_include_file(sys/stat.h HAVE_SYS_STAT_H)
9+
check_include_file(sys/types.h HAVE_SYS_TYPES_H)
10+
check_include_file(unistd.h HAVE_UNISTD_H)
11+
check_include_file(windows.h HAVE_WINDOWS_H)
12+
13+
check_function_exists(bcopy HAVE_BCOPY)
14+
check_function_exists(memmove HAVE_MEMMOVE)
15+
check_function_exists(strerror HAVE_STRERROR)
16+
check_function_exists(strtoll HAVE_STRTOLL)
17+
check_function_exists(strtoq HAVE_STRTOQ)
18+
check_function_exists(_strtoi64 HAVE__STRTOI64)
19+
20+
check_type_size("long long" LONG_LONG)
21+
check_type_size("unsigned long long" UNSIGNED_LONG_LONG)
22+
23+
disable_warnings(unused-function)
24+
disable_warnings(implicit-fallthrough)
2525

2626
# User-configurable options
2727

28-
SET(SUPPORT_PCRE8 1)
29-
SET(PCRE_LINK_SIZE "2")
30-
SET(PCRE_PARENS_NEST_LIMIT "250")
31-
SET(PCRE_MATCH_LIMIT "10000000")
32-
SET(PCRE_MATCH_LIMIT_RECURSION "MATCH_LIMIT")
33-
SET(PCRE_NEWLINE "LF")
34-
SET(NO_RECURSE 1)
35-
SET(PCRE_POSIX_MALLOC_THRESHOLD "10")
36-
SET(BSR_ANYCRLF 0)
37-
38-
IF (MINGW)
39-
OPTION(NON_STANDARD_LIB_PREFIX
40-
"ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc."
41-
OFF)
42-
43-
OPTION(NON_STANDARD_LIB_SUFFIX
44-
"ON=Shared libraries built in mingw will be named libpcre-0.dll, etc., instead of libpcre.dll, etc."
45-
OFF)
46-
ENDIF(MINGW)
28+
set(SUPPORT_PCRE8 1)
29+
set(PCRE_LINK_SIZE "2")
30+
set(PCRE_PARENS_NEST_LIMIT "250")
31+
set(PCRE_MATCH_LIMIT "10000000")
32+
set(PCRE_MATCH_LIMIT_RECURSION "MATCH_LIMIT")
33+
set(PCRE_NEWLINE "LF")
34+
set(NO_RECURSE 1)
35+
set(PCRE_POSIX_MALLOC_THRESHOLD "10")
36+
set(BSR_ANYCRLF 0)
37+
38+
if(MINGW)
39+
option(NON_STANDARD_LIB_PREFIX
40+
"ON=Shared libraries built in mingw will be named pcre.dll, etc., instead of libpcre.dll, etc."
41+
OFF)
42+
43+
option(NON_STANDARD_LIB_SUFFIX
44+
"ON=Shared libraries built in mingw will be named libpcre-0.dll, etc., instead of libpcre.dll, etc."
45+
OFF)
46+
endif(MINGW)
4747

4848
# Prepare build configuration
4949

50-
SET(pcre_have_long_long 0)
51-
SET(pcre_have_ulong_long 0)
52-
53-
IF(HAVE_LONG_LONG)
54-
SET(pcre_have_long_long 1)
55-
ENDIF(HAVE_LONG_LONG)
56-
57-
IF(HAVE_UNSIGNED_LONG_LONG)
58-
SET(pcre_have_ulong_long 1)
59-
ENDIF(HAVE_UNSIGNED_LONG_LONG)
60-
61-
SET(NEWLINE "")
62-
63-
IF(PCRE_NEWLINE STREQUAL "LF")
64-
SET(NEWLINE "10")
65-
ENDIF(PCRE_NEWLINE STREQUAL "LF")
66-
IF(PCRE_NEWLINE STREQUAL "CR")
67-
SET(NEWLINE "13")
68-
ENDIF(PCRE_NEWLINE STREQUAL "CR")
69-
IF(PCRE_NEWLINE STREQUAL "CRLF")
70-
SET(NEWLINE "3338")
71-
ENDIF(PCRE_NEWLINE STREQUAL "CRLF")
72-
IF(PCRE_NEWLINE STREQUAL "ANY")
73-
SET(NEWLINE "-1")
74-
ENDIF(PCRE_NEWLINE STREQUAL "ANY")
75-
IF(PCRE_NEWLINE STREQUAL "ANYCRLF")
76-
SET(NEWLINE "-2")
77-
ENDIF(PCRE_NEWLINE STREQUAL "ANYCRLF")
78-
79-
IF(NEWLINE STREQUAL "")
80-
MESSAGE(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\".")
81-
ENDIF(NEWLINE STREQUAL "")
50+
set(pcre_have_long_long 0)
51+
set(pcre_have_ulong_long 0)
52+
53+
if(HAVE_LONG_LONG)
54+
set(pcre_have_long_long 1)
55+
endif(HAVE_LONG_LONG)
56+
57+
if(HAVE_UNSIGNED_LONG_LONG)
58+
set(pcre_have_ulong_long 1)
59+
endif(HAVE_UNSIGNED_LONG_LONG)
60+
61+
set(NEWLINE "")
62+
63+
if(PCRE_NEWLINE STREQUAL "LF")
64+
set(NEWLINE "10")
65+
endif(PCRE_NEWLINE STREQUAL "LF")
66+
if(PCRE_NEWLINE STREQUAL "CR")
67+
set(NEWLINE "13")
68+
endif(PCRE_NEWLINE STREQUAL "CR")
69+
if(PCRE_NEWLINE STREQUAL "CRLF")
70+
set(NEWLINE "3338")
71+
endif(PCRE_NEWLINE STREQUAL "CRLF")
72+
if(PCRE_NEWLINE STREQUAL "ANY")
73+
set(NEWLINE "-1")
74+
endif(PCRE_NEWLINE STREQUAL "ANY")
75+
if(PCRE_NEWLINE STREQUAL "ANYCRLF")
76+
set(NEWLINE "-2")
77+
endif(PCRE_NEWLINE STREQUAL "ANYCRLF")
78+
79+
if(NEWLINE STREQUAL "")
80+
message(FATAL_ERROR "The PCRE_NEWLINE variable must be set to one of the following values: \"LF\", \"CR\", \"CRLF\", \"ANY\", \"ANYCRLF\".")
81+
endif(NEWLINE STREQUAL "")
8282

8383
# Output files
84-
CONFIGURE_FILE(config.h.in
84+
configure_file(config.h.in
8585
${PROJECT_BINARY_DIR}/src/pcre/config.h
8686
@ONLY)
8787

8888
# Source code
8989

90-
SET(PCRE_HEADERS ${PROJECT_BINARY_DIR}/src/pcre/config.h)
90+
set(PCRE_HEADERS ${PROJECT_BINARY_DIR}/src/pcre/config.h)
9191

92-
SET(PCRE_SOURCES
92+
set(PCRE_SOURCES
9393
pcre_byte_order.c
9494
pcre_chartables.c
9595
pcre_compile.c
@@ -113,28 +113,28 @@ SET(PCRE_SOURCES
113113
pcre_xclass.c
114114
)
115115

116-
SET(PCREPOSIX_HEADERS pcreposix.h)
116+
set(PCREPOSIX_HEADERS pcreposix.h)
117117

118-
SET(PCREPOSIX_SOURCES pcreposix.c)
118+
set(PCREPOSIX_SOURCES pcreposix.c)
119119

120120
# Fix static compilation with MSVC: https://bugs.exim.org/show_bug.cgi?id=1681
121121
# This code was taken from the CMake wiki, not from WebM.
122122

123123
# Build setup
124124

125-
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
125+
add_definitions(-DHAVE_CONFIG_H)
126126

127-
IF(MSVC)
128-
ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
129-
ENDIF(MSVC)
127+
if(MSVC)
128+
add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS)
129+
endif(MSVC)
130130

131-
SET(CMAKE_INCLUDE_CURRENT_DIR 1)
131+
set(CMAKE_INCLUDE_CURRENT_DIR 1)
132132

133-
SET(targets)
133+
set(targets)
134134

135135
# Libraries
136136
# pcre
137-
INCLUDE_DIRECTORIES(${PROJECT_BINARY_DIR}/src/pcre)
138-
ADD_LIBRARY(pcre OBJECT ${PCRE_HEADERS} ${PCRE_SOURCES} ${PCREPOSIX_SOURCES})
137+
include_directories(${PROJECT_BINARY_DIR}/src/pcre)
138+
add_library(pcre OBJECT ${PCRE_HEADERS} ${PCRE_SOURCES} ${PCREPOSIX_SOURCES})
139139

140140
# end CMakeLists.txt

deps/winhttp/CMakeLists.txt

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1-
FIND_PROGRAM(DLLTOOL dlltool CMAKE_FIND_ROOT_PATH_BOTH)
2-
IF (NOT DLLTOOL)
3-
MESSAGE(FATAL_ERROR "Could not find dlltool command")
4-
ENDIF ()
1+
find_program(DLLTOOL dlltool CMAKE_FIND_ROOT_PATH_BOTH)
2+
if(NOT DLLTOOL)
3+
message(FATAL_ERROR "Could not find dlltool command")
4+
endif()
55

6-
SET(LIBWINHTTP_PATH "${libgit2_BINARY_DIR}/deps/winhttp")
7-
SET(LIBWINHTTP_PATH ${LIBWINHTTP_PATH} PARENT_SCOPE)
8-
FILE(MAKE_DIRECTORY ${LIBWINHTTP_PATH})
6+
set(LIBWINHTTP_PATH "${libgit2_BINARY_DIR}/deps/winhttp")
7+
set(LIBWINHTTP_PATH ${LIBWINHTTP_PATH} PARENT_SCOPE)
8+
file(MAKE_DIRECTORY ${LIBWINHTTP_PATH})
99

10-
IF (CMAKE_SIZEOF_VOID_P EQUAL 8)
10+
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
1111
set(WINHTTP_DEF "winhttp64.def")
12-
ELSE()
12+
else()
1313
set(WINHTTP_DEF "winhttp.def")
14-
ENDIF()
14+
endif()
1515

16-
ADD_CUSTOM_COMMAND(
16+
add_custom_command(
1717
OUTPUT ${LIBWINHTTP_PATH}/libwinhttp.a
1818
COMMAND ${DLLTOOL} -d ${WINHTTP_DEF} -k -D winhttp.dll -l libwinhttp.a
1919
DEPENDS ${WINHTTP_DEF}
2020
WORKING_DIRECTORY ${LIBWINHTTP_PATH}
2121
)
2222

23-
SET_SOURCE_FILES_PROPERTIES(
23+
set_source_files_properties(
2424
${CMAKE_CURRENT_SOURCE_DIR}/src/transports/winhttp.c
2525
PROPERTIES OBJECT_DEPENDS ${LIBWINHTTP_PATH}/libwinhttp.a
2626
)

examples/CMakeLists.txt

+11-11
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
1-
INCLUDE_DIRECTORIES(${LIBGIT2_INCLUDES})
2-
INCLUDE_DIRECTORIES(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
1+
include_directories(${LIBGIT2_INCLUDES})
2+
include_directories(SYSTEM ${LIBGIT2_SYSTEM_INCLUDES})
33

4-
FILE(GLOB LG2_SOURCES *.c *.h)
5-
ADD_EXECUTABLE(lg2 ${LG2_SOURCES})
6-
SET_TARGET_PROPERTIES(lg2 PROPERTIES C_STANDARD 90)
4+
file(GLOB LG2_SOURCES *.c *.h)
5+
add_executable(lg2 ${LG2_SOURCES})
6+
set_target_properties(lg2 PROPERTIES C_STANDARD 90)
77

88
# Ensure that we do not use deprecated functions internally
9-
ADD_DEFINITIONS(-DGIT_DEPRECATE_HARD)
9+
add_definitions(-DGIT_DEPRECATE_HARD)
1010

11-
IF(WIN32 OR ANDROID)
12-
TARGET_LINK_LIBRARIES(lg2 git2)
13-
ELSE()
14-
TARGET_LINK_LIBRARIES(lg2 git2 pthread)
15-
ENDIF()
11+
if(WIN32 OR ANDROID)
12+
target_link_libraries(lg2 git2)
13+
else()
14+
target_link_libraries(lg2 git2 pthread)
15+
endif()

0 commit comments

Comments
 (0)