6
6
########################################################################
7
7
# Project setup
8
8
########################################################################
9
- cmake_minimum_required (VERSION 2.8.12 )
9
+ cmake_minimum_required (VERSION 2.8...4.0 )
10
10
project (zproject )
11
11
enable_language (C )
12
12
enable_testing ()
13
13
14
- set (SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR} " )
14
+ include (GNUInstallDirs )
15
+
15
16
set (CMAKE_EXPORT_COMPILE_COMMANDS 1 )
16
17
# Select flags
17
18
if (MSVC )
@@ -51,7 +52,7 @@ if (NOT HAVE_NET_IF_H)
51
52
CHECK_INCLUDE_FILE ("net/if.h" HAVE_NET_IF_H )
52
53
endif ()
53
54
54
- file (REMOVE "${SOURCE_DIR } /src/platform.h" )
55
+ file (REMOVE "${PROJECT_SOURCE_DIR } /src/platform.h" )
55
56
56
57
file (WRITE "${PROJECT_BINARY_DIR} /platform.h.in" "
57
58
#cmakedefine HAVE_LINUX_WIRELESS_H
@@ -68,7 +69,7 @@ if (WIN32)
68
69
#so the sources have to be compiled as c++
69
70
if (MSVC AND NOT (CMAKE_CXX_COMPILER_ID MATCHES "Clang" ))
70
71
enable_language (CXX )
71
- file (GLOB sources "${SOURCE_DIR } /src/*.c" )
72
+ file (GLOB sources "${PROJECT_SOURCE_DIR } /src/*.c" )
72
73
set_source_files_properties (
73
74
${sources}
74
75
PROPERTIES LANGUAGE CXX
@@ -94,7 +95,7 @@ if (CYGWIN)
94
95
set (MORE_LIBRARIES )
95
96
endif ()
96
97
97
- list (APPEND CMAKE_MODULE_PATH "${SOURCE_DIR } " )
98
+ list (APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR } " )
98
99
set (OPTIONAL_LIBRARIES )
99
100
set (OPTIONAL_LIBRARIES_STATIC )
100
101
@@ -126,7 +127,7 @@ set (zproject_headers
126
127
)
127
128
128
129
source_group ("Header Files" FILES ${zproject_headers} )
129
- install (FILES ${zproject_headers} DESTINATION include )
130
+ install (FILES ${zproject_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
130
131
131
132
########################################################################
132
133
# executables
@@ -197,31 +198,30 @@ include(CTest)
197
198
# cleanup
198
199
########################################################################
199
200
if (NOT TARGET distclean )
200
- add_custom_target (distclean @echo Cleaning for source distribution )
201
+ if (CMAKE_VERSION VERSION_LESS 3.17 )
202
+ set (rm_command rm -rf )
203
+ else ()
204
+ set (rm_command ${CMAKE_COMMAND} -E rm -rf -- )
205
+ endif ()
206
+ set (cmake_generated ${PROJECT_BINARY_DIR} /CMakeCache.txt
207
+ ${PROJECT_BINARY_DIR} /cmake_install.cmake
208
+ ${PROJECT_BINARY_DIR} /Makefile
209
+ ${PROJECT_BINARY_DIR} /CMakeFiles
210
+ ${PROJECT_BINARY_DIR} /CTestTestfile.cmake
211
+ ${PROJECT_BINARY_DIR} /DartConfiguration.tcl
212
+ ${PROJECT_BINARY_DIR} /Testing
213
+ ${PROJECT_BINARY_DIR} /compile_commands.json
214
+ ${PROJECT_BINARY_DIR} /platform.h
215
+ ${PROJECT_BINARY_DIR} /src/libzproject.pc
216
+ ${PROJECT_BINARY_DIR} /src/libzproject.so
217
+ ${PROJECT_BINARY_DIR} /src/zproject_selftest
218
+ )
219
+ add_custom_target (distclean
220
+ COMMAND ${rm_command} CMakeTmp ${cmake_generated}
221
+ COMMENT Cleaning for source distribution
222
+ )
201
223
endif ()
202
224
203
- set (cmake_generated ${PROJECT_BINARY_DIR} /CMakeCache.txt
204
- ${PROJECT_BINARY_DIR} /cmake_install.cmake
205
- ${PROJECT_BINARY_DIR} /Makefile
206
- ${PROJECT_BINARY_DIR} /CMakeFiles
207
- ${PROJECT_BINARY_DIR} /CTestTestfile.cmake
208
- ${PROJECT_BINARY_DIR} /DartConfiguration.tcl
209
- ${PROJECT_BINARY_DIR} /Testing
210
- ${PROJECT_BINARY_DIR} /compile_commands.json
211
- ${PROJECT_BINARY_DIR} /platform.h
212
- ${PROJECT_BINARY_DIR} /src/libzproject.pc
213
- ${PROJECT_BINARY_DIR} /src/libzproject.so
214
- ${PROJECT_BINARY_DIR} /src/zproject_selftest
215
- )
216
-
217
- add_custom_command (
218
- DEPENDS clean
219
- COMMENT "distribution clean"
220
- COMMAND rm
221
- ARGS -rf CMakeTmp ${cmake_generated}
222
- TARGET distclean
223
- )
224
-
225
225
include (ClangFormat OPTIONAL )
226
226
227
227
########################################################################
0 commit comments