1414PROJECT (libgit2 C)
1515CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)
1616CMAKE_POLICY (SET CMP0015 NEW)
17- IF (NOT CMAKE_VERSION VERSION_LESS 3.1 )
17+ IF (POLICY CMP0051 )
1818 CMAKE_POLICY (SET CMP0051 NEW)
1919ENDIF ()
20+ IF (POLICY CMP0042)
21+ CMAKE_POLICY (SET CMP0042 NEW)
22+ ENDIF ()
2023
2124# Add find modules to the path
2225SET (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${libgit2_SOURCE_DIR} /cmake/Modules/" )
@@ -28,7 +31,10 @@ INCLUDE(CheckStructHasMember)
2831INCLUDE (AddCFlagIfSupported)
2932INCLUDE (FindPkgConfig)
3033INCLUDE (FindThreads)
34+ INCLUDE (FindStatNsec)
35+ INCLUDE (IdeSplitSources)
3136INCLUDE (FeatureSummary)
37+ INCLUDE (EnableWarnings)
3238
3339# Build options
3440#
@@ -91,50 +97,6 @@ IF(MSVC)
9197 OPTION (MSVC_CRTDBG "Enable CRTDBG memory leak reporting" OFF )
9298ENDIF ()
9399
94- CHECK_STRUCT_HAS_MEMBER ("struct stat" st_mtim "sys/types.h;sys/stat.h"
95- HAVE_STRUCT_STAT_ST_MTIM LANGUAGE C)
96- CHECK_STRUCT_HAS_MEMBER ("struct stat" st_mtimespec "sys/types.h;sys/stat.h"
97- HAVE_STRUCT_STAT_ST_MTIMESPEC LANGUAGE C)
98- CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtime_nsec sys/stat.h
99- HAVE_STRUCT_STAT_MTIME_NSEC LANGUAGE C)
100-
101- IF (HAVE_STRUCT_STAT_ST_MTIM)
102- CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtim.tv_nsec sys/stat.h
103- HAVE_STRUCT_STAT_NSEC LANGUAGE C)
104- ELSEIF (HAVE_STRUCT_STAT_ST_MTIMESPEC)
105- CHECK_STRUCT_HAS_MEMBER("struct stat" st_mtimespec.tv_nsec sys/stat.h
106- HAVE_STRUCT_STAT_NSEC LANGUAGE C)
107- ELSE ()
108- SET ( HAVE_STRUCT_STAT_NSEC ON )
109- ENDIF ()
110-
111- IF (HAVE_STRUCT_STAT_NSEC OR WIN32 )
112- OPTION ( USE_NSEC "Care about sub-second file mtimes and ctimes" ON )
113- ENDIF ()
114-
115- # This function splits the sources files up into their appropriate
116- # subdirectories. This is especially useful for IDEs like Xcode and
117- # Visual Studio, so that you can navigate into the libgit2_clar project,
118- # and see the folders within the tests folder (instead of just seeing all
119- # source and tests in a single folder.)
120- FUNCTION (IDE_SPLIT_SOURCES target )
121- IF (MSVC_IDE OR CMAKE_GENERATOR STREQUAL Xcode)
122- GET_TARGET_PROPERTY (sources ${target} SOURCES )
123- FOREACH (source ${sources} )
124- IF (source MATCHES ".*/" )
125- STRING (REPLACE ${libgit2_SOURCE_DIR} / "" rel ${source} )
126- IF (rel)
127- STRING (REGEX REPLACE "/([^/]*)$" "" rel ${rel} )
128- IF (rel)
129- STRING (REPLACE "/" "\\\\ " rel ${rel} )
130- SOURCE_GROUP (${rel} FILES ${source} )
131- ENDIF ()
132- ENDIF ()
133- ENDIF ()
134- ENDFOREACH ()
135- ENDIF ()
136- ENDFUNCTION ()
137-
138100FILE (STRINGS "${libgit2_SOURCE_DIR} /include/git2/version.h" GIT2_HEADER REGEX "^#define LIBGIT2_VERSION \" [^\" ]*\" $" )
139101
140102STRING (REGEX REPLACE "^.*LIBGIT2_VERSION \" ([0-9]+).*$" "\\ 1" LIBGIT2_VERSION_MAJOR "${GIT2_HEADER} " )
@@ -230,21 +192,6 @@ ELSE ()
230192
231193 SET (CMAKE_C_FLAGS "-D_GNU_SOURCE ${CMAKE_C_FLAGS} " )
232194
233- MACRO (ENABLE_WARNINGS flag)
234- IF (ENABLE_WERROR)
235- ADD_C_FLAG_IF_SUPPORTED(-Werror=${flag} )
236- ELSE ()
237- ADD_C_FLAG_IF_SUPPORTED(-W${flag} )
238- ENDIF ()
239- ENDMACRO ()
240-
241- MACRO (DISABLE_WARNINGS flag)
242- ADD_C_FLAG_IF_SUPPORTED(-Wno-${flag} )
243- IF (ENABLE_WERROR)
244- ADD_C_FLAG_IF_SUPPORTED(-Wno-error=${flag} )
245- ENDIF ()
246- ENDMACRO ()
247-
248195 ENABLE_WARNINGS(all )
249196 ENABLE_WARNINGS(extra)
250197
0 commit comments