Skip to content

Commit 5ab50bb

Browse files
committed
begin to modernise / simplify CMake code
1 parent dc38153 commit 5ab50bb

31 files changed

+260
-244
lines changed

CMakeLists.txt

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ set(SC_ABI_SOVERSION 2)
5151
set(SC_ABI_VERSION ${SC_ABI_SOVERSION}.0.0)
5252

5353
# Minimum required version of CMake
54-
cmake_minimum_required(VERSION 2.8.7)
54+
cmake_minimum_required(VERSION 3.6.3)
55+
# TODO: rework to remove these
5556
if(COMMAND CMAKE_POLICY)
5657
CMAKE_POLICY(SET CMP0003 NEW)
5758
if ("${CMAKE_VERSION}" VERSION_GREATER 2.99)
@@ -109,11 +110,8 @@ include(${SC_CMAKE_DIR}/SC_Config_Headers.cmake)
109110
################
110111

111112
if(MSVC)
112-
add_definitions(-D__MSVC__ -D__WIN32__)
113113
# Disable warning for preferred usage of secure functions (example strcpy should be strcpy_s, ...)
114114
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
115-
elseif(BORLAND)
116-
add_definitions(-D__BORLAND__ -D__WIN32__)
117115
else()
118116
add_definitions(-pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
119117
if(HAVE_NULLPTR)
@@ -145,7 +143,11 @@ add_subdirectory(doc)
145143

146144
# 'make core' builds everything that isn't generated. for devs.
147145
add_custom_target(core)
148-
add_dependencies(core stepdai check-express stepeditor exp2cxx)
146+
if($CACHE{SC_BUILD_SHARED_LIBS})
147+
add_dependencies(core stepdai stepeditor exp2cxx check-express)
148+
else()
149+
add_dependencies(core stepdai-static stepeditor-static exp2cxx check-express)
150+
endif()
149151

150152
# CONFIG_END_MESSAGES - list of messages to be printed after everything else is done.
151153
# THIS MUST BE LAST to ensure that they are visible to the user without scrolling.

cmake/SC_CXX_schema_macros.cmake

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,18 @@ endmacro(P21_TESTS sfile)
2727
# create p21read_sdai_*, lazy_sdai_*, any exes listed in SC_SDAI_ADDITIONAL_EXES_SRCS
2828
macro(SCHEMA_EXES)
2929
RELATIVE_PATH_TO_TOPLEVEL(${CMAKE_CURRENT_SOURCE_DIR} RELATIVE_PATH_COMPONENT)
30-
SC_ADDEXEC(p21read_${PROJECT_NAME} "${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc" "${PROJECT_NAME};stepdai;stepcore;stepeditor;steputils;base" "TESTABLE")
30+
SC_ADDEXEC(p21read_${PROJECT_NAME} SOURCES "${RELATIVE_PATH_COMPONENT}/src/test/p21read/p21read.cc" LINK_LIBRARIES ${PROJECT_NAME} stepdai stepcore stepeditor steputils base TESTABLE)
3131
#add_dependencies(p21read_${PROJECT_NAME} version_string)
3232
if(NOT WIN32)
33-
SC_ADDEXEC(lazy_${PROJECT_NAME} "${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc" "${PROJECT_NAME};steplazyfile;stepdai;stepcore;stepeditor;steputils;base" "TESTABLE")
33+
SC_ADDEXEC(lazy_${PROJECT_NAME} SOURCES "${RELATIVE_PATH_COMPONENT}/src/cllazyfile/lazy_test.cc" LINK_LIBRARIES ${PROJECT_NAME} steplazyfile stepdai stepcore stepeditor steputils base TESTABLE)
3434
#add_dependencies(lazy_${PROJECT_NAME} version_string)
3535
endif(NOT WIN32)
3636

3737
#add user-defined executables
3838
foreach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
3939
get_filename_component(name ${src} NAME_WE)
4040
get_filename_component(path ${src} ABSOLUTE)
41-
SC_ADDEXEC(${name}_${PROJECT_NAME} "${src}" "${PROJECT_NAME};stepdai;stepcore;stepeditor;steputils;base" "TESTABLE")
41+
SC_ADDEXEC(${name}_${PROJECT_NAME} SOURCES ${src} LINK_LIBRARIES ${PROJECT_NAME} stepdai stepcore stepeditor steputils base TESTABLE)
4242
add_dependencies(${name}_${PROJECT_NAME} version_string)
4343
#set_target_properties(${name}_${PROJECT_NAME} PROPERTIES COMPILE_FLAGS "${${PROJECT_NAME}_COMPILE_FLAGS} -I${path}")
4444
endforeach(src ${SC_SDAI_ADDITIONAL_EXES_SRCS})
@@ -96,8 +96,26 @@ macro(SCHEMA_TARGETS expFile schemaName sourceFiles)
9696
${SC_SOURCE_DIR}/src/base/judy/src
9797
)
9898
# if testing is enabled, "TESTABLE" sets property EXCLUDE_FROM_ALL and prevents installation
99-
SC_ADDLIB(${PROJECT_NAME} "${sourceFiles}" "stepdai;stepcore;stepeditor;steputils;base" "TESTABLE")
100-
add_dependencies(${PROJECT_NAME} generate_cpp_${PROJECT_NAME})
99+
if($CACHE{SC_BUILD_SHARED_LIBS})
100+
SC_ADDLIB(${PROJECT_NAME} SHARED SOURCES ${sourceFiles} LINK_LIBRARIES stepdai stepcore stepeditor steputils base TESTABLE)
101+
add_dependencies(${PROJECT_NAME} generate_cpp_${PROJECT_NAME})
102+
if(WIN32)
103+
target_compile_definitions("${PROJECT_NAME}" PRIVATE SC_SCHEMA_DLL_EXPORTS)
104+
if(MSVC)
105+
target_compile_options("${PROJECT_NAME}" PRIVATE "/bigobj")
106+
endif()
107+
endif()
108+
endif()
109+
110+
if($CACHE{SC_BUILD_STATIC_LIBS})
111+
SC_ADDLIB(${PROJECT_NAME}-static STATIC SOURCES ${sourceFiles} LINK_LIBRARIES stepdai-static stepcore-static stepeditor-static steputils-static base-static TESTABLE)
112+
add_dependencies(${PROJECT_NAME}-static generate_cpp_${PROJECT_NAME})
113+
target_compile_defines("${PROJECT_NAME}-static" PRIVATE SC_STATIC)
114+
if(MSVC)
115+
target_compile_options("${PROJECT_NAME}-static" PRIVATE "/bigobj")
116+
endif()
117+
endif()
118+
101119
102120
SCHEMA_EXES()
103121
SCHEMA_TESTS()

cmake/SC_Config_Headers.cmake

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@ CONFIG_H_APPEND(SC "${CONFIG_H_FILE_CONTENTS}")
2121

2222
include(CheckLibraryExists)
2323
include(CheckIncludeFile)
24-
include(CheckFunctionExists)
24+
include(CheckSymbolExists)
2525
include(CheckTypeSize)
2626
include(CMakePushCheckState)
27+
include(CheckCSourceCompiles)
2728
include(CheckCXXSourceRuns)
2829

2930
CHECK_INCLUDE_FILE(ndir.h HAVE_NDIR_H)
@@ -37,10 +38,13 @@ CHECK_INCLUDE_FILE(stdbool.h HAVE_STDBOOL_H)
3738
CHECK_INCLUDE_FILE(process.h HAVE_PROCESS_H)
3839
CHECK_INCLUDE_FILE(io.h HAVE_IO_H)
3940

40-
CHECK_FUNCTION_EXISTS(abs HAVE_ABS)
41-
CHECK_FUNCTION_EXISTS(memcpy HAVE_MEMCPY)
42-
CHECK_FUNCTION_EXISTS(memmove HAVE_MEMMOVE)
43-
CHECK_FUNCTION_EXISTS(getopt HAVE_GETOPT)
41+
# ensure macro functions are captured
42+
CHECK_SYMBOL_EXISTS(abs "stdlib.h" HAVE_ABS)
43+
CHECK_SYMBOL_EXISTS(memcpy "string.h" HAVE_MEMCPY)
44+
CHECK_SYMBOL_EXISTS(memmove "string.h" HAVE_MEMMOVE)
45+
CHECK_SYMBOL_EXISTS(getopt "getopt.h" HAVE_GETOPT)
46+
CHECK_SYMBOL_EXISTS(snprintf "stdio.h" HAVE_SNPRINTF)
47+
CHECK_SYMBOL_EXISTS(vsnprintf "stdio.h" HAVE_VSNPRINTF)
4448

4549
CHECK_TYPE_SIZE("ssize_t" SSIZE_T)
4650

cmake/SC_Targets.cmake

Lines changed: 66 additions & 134 deletions
Original file line numberDiff line numberDiff line change
@@ -1,150 +1,82 @@
1+
macro(SC_ADDEXEC execname)
2+
set(_addexec_opts NO_INSTALL TESTABLE)
3+
set(_addexec_multikw SOURCES LINK_LIBRARIES)
4+
string(TOUPPER "SC_ADDEXEC_${execname}_ARG" _arg_prefix)
5+
cmake_parse_arguments(${_arg_prefix} "${_addexec_opts}" "" "${_addexec_multikw}" ${ARGN})
16

2-
# set compile definitions for dll exports on windows
3-
macro(DEFINE_DLL_EXPORTS libname)
4-
if(MSVC OR BORLAND)
5-
if(${libname} MATCHES "sdai_.*")
6-
set(export "SC_SCHEMA_DLL_EXPORTS")
7-
else()
8-
string(REGEX REPLACE "lib" "" shortname "${libname}")
9-
string(REGEX REPLACE "step" "" LOWERCORE "${shortname}")
10-
string(TOUPPER ${LOWERCORE} UPPER_CORE)
11-
set(export "SC_${UPPER_CORE}_DLL_EXPORTS")
12-
endif()
13-
set_property(TARGET ${libname} APPEND PROPERTY COMPILE_DEFINITIONS "${export}")
14-
endif(MSVC OR BORLAND)
15-
endmacro(DEFINE_DLL_EXPORTS libname)
7+
if(NOT DEFINED "${_arg_prefix}_SOURCES")
8+
message(SEND_ERROR "SC_ADDEXEC usage error!")
9+
endif()
1610

17-
# set compile definitions for dll imports on windows
18-
macro(DEFINE_DLL_IMPORTS tgt libs)
19-
if(MSVC OR BORLAND)
20-
set(imports "")
21-
foreach(lib ${libs})
22-
string(REGEX REPLACE "lib" "" shortname "${lib}")
23-
string(REGEX REPLACE "step" "" LOWERCORE "${shortname}")
24-
string(TOUPPER ${LOWERCORE} UPPER_CORE)
25-
list(APPEND imports "SC_${UPPER_CORE}_DLL_IMPORTS")
26-
endforeach(lib ${libs})
27-
set_property(TARGET ${tgt} APPEND PROPERTY COMPILE_DEFINITIONS "${imports}")
28-
endif(MSVC OR BORLAND)
29-
endmacro(DEFINE_DLL_IMPORTS tgt libs)
11+
add_executable(${execname} ${${_arg_prefix}_SOURCES})
3012

31-
#SC_ADDEXEC(execname "source files" "linked libs" ["TESTABLE"] ["NO_INSTALL"])
32-
macro(SC_ADDEXEC execname srcslist libslist)
13+
if(DEFINED "${_arg_prefix}_LINK_LIBRARIES")
14+
foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
15+
if($CACHE{SC_STATIC_UTILS})
16+
if(NOT $<TARGET_PROPERTY:${_lib},TYPE> STREQUAL "STATIC_LIBRARY")
17+
message(SEND_ERROR "SC_ADDEXEC usage error - expected STATIC LINK_LIBRARIES targets (${_lib})")
18+
endif()
19+
endif()
20+
target_link_libraries(${execname} ${_lib})
21+
endforeach()
22+
endif()
3323

34-
string(TOUPPER "${execname}" EXECNAME_UPPER)
35-
if(${ARGC} GREATER 3)
36-
CMAKE_PARSE_ARGUMENTS(${EXECNAME_UPPER} "NO_INSTALL;TESTABLE" "" "" ${ARGN})
37-
endif(${ARGC} GREATER 3)
38-
39-
add_executable(${execname} ${srcslist})
40-
target_link_libraries(${execname} ${libslist})
41-
DEFINE_DLL_IMPORTS(${execname} "${libslist}") #add import definitions for all libs that the executable is linked to
42-
if(NOT ${EXECNAME_UPPER}_NO_INSTALL AND NOT ${EXECNAME_UPPER}_TESTABLE)
24+
if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
4325
install(TARGETS ${execname}
4426
RUNTIME DESTINATION ${BIN_DIR}
4527
LIBRARY DESTINATION ${LIB_DIR}
46-
ARCHIVE DESTINATION ${LIB_DIR}
47-
)
48-
endif(NOT ${EXECNAME_UPPER}_NO_INSTALL AND NOT ${EXECNAME_UPPER}_TESTABLE)
49-
if(NOT SC_ENABLE_TESTING AND ${EXECNAME_UPPER}_TESTABLE)
50-
set_target_properties( ${execname} PROPERTIES EXCLUDE_FROM_ALL ON )
51-
endif(NOT SC_ENABLE_TESTING AND ${EXECNAME_UPPER}_TESTABLE)
52-
53-
# Enable extra compiler flags if local executables and/or global options dictate
54-
set(LOCAL_COMPILE_FLAGS "")
55-
foreach(extraarg ${ARGN})
56-
if(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
57-
set(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
58-
endif(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
59-
endforeach(extraarg ${ARGN})
60-
if(LOCAL_COMPILE_FLAGS)
61-
set_target_properties(${execname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
62-
endif(LOCAL_COMPILE_FLAGS)
28+
ARCHIVE DESTINATION ${LIB_DIR}
29+
)
30+
endif()
6331

64-
endmacro(SC_ADDEXEC execname srcslist libslist)
32+
if(NOT SC_ENABLE_TESTING AND ${_arg_prefix}_TESTABLE)
33+
set_target_properties(${execname} PROPERTIES EXCLUDE_FROM_ALL ON)
34+
endif()
35+
endmacro()
6536

66-
#SC_ADDLIB(libname "source files" "linked libs" ["TESTABLE"] ["NO_INSTALL"] ["SO_SRCS ..."] ["STATIC_SRCS ..."])
67-
macro(SC_ADDLIB libname srcslist libslist)
37+
macro(SC_ADDLIB _addlib_target)
38+
set(_addlib_opts SHARED STATIC NO_INSTALL TESTABLE)
39+
set(_addlib_multikw SOURCES LINK_LIBRARIES)
40+
string(TOUPPER "SC_ADDLIB_${libname}_ARG" _arg_prefix)
41+
cmake_parse_arguments(${_arg_prefix} "${_addlib_opts}" "" "${_addlib_multikw}" ${ARGN})
6842

69-
string(TOUPPER "${libname}" LIBNAME_UPPER)
70-
if(${ARGC} GREATER 3)
71-
CMAKE_PARSE_ARGUMENTS(${LIBNAME_UPPER} "NO_INSTALL;TESTABLE" "" "SO_SRCS;STATIC_SRCS" ${ARGN})
72-
endif(${ARGC} GREATER 3)
43+
if(NOT DEFINED ${_arg_prefix}_SOURCES)
44+
message(SEND_ERROR "SC_ADDLIB usage error!")
45+
endif()
7346

74-
string(REGEX REPLACE "-framework;" "-framework " libslist "${libslist1}")
75-
if(SC_BUILD_SHARED_LIBS)
76-
add_library(${libname} SHARED ${srcslist} ${${LIBNAME_UPPER}_SO_SRCS})
77-
DEFINE_DLL_EXPORTS(${libname})
78-
if(NOT "${libs}" MATCHES "NONE")
79-
target_link_libraries(${libname} ${libslist})
80-
DEFINE_DLL_IMPORTS(${libname} "${libslist}")
81-
endif(NOT "${libs}" MATCHES "NONE")
82-
set_target_properties(${libname} PROPERTIES VERSION ${SC_ABI_VERSION} SOVERSION ${SC_ABI_SOVERSION})
83-
if(NOT ${LIBNAME_UPPER}_NO_INSTALL AND NOT ${LIBNAME_UPPER}_TESTABLE)
84-
install(TARGETS ${libname}
85-
RUNTIME DESTINATION ${BIN_DIR}
86-
LIBRARY DESTINATION ${LIB_DIR}
87-
ARCHIVE DESTINATION ${LIB_DIR}
88-
)
89-
endif(NOT ${LIBNAME_UPPER}_NO_INSTALL AND NOT ${LIBNAME_UPPER}_TESTABLE)
90-
if(NOT SC_ENABLE_TESTING AND ${LIBNAME_UPPER}_TESTABLE)
91-
set_target_properties( ${libname} PROPERTIES EXCLUDE_FROM_ALL ON )
92-
endif(NOT SC_ENABLE_TESTING AND ${LIBNAME_UPPER}_TESTABLE)
93-
if(APPLE)
94-
set_target_properties(${libname} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
95-
endif(APPLE)
96-
endif(SC_BUILD_SHARED_LIBS)
97-
if(SC_BUILD_STATIC_LIBS)
98-
if(NOT SC_BUILD_SHARED_LIBS)
99-
set(staticlibname "${libname}")
100-
else()
101-
set(staticlibname "${libname}-static")
102-
endif(NOT SC_BUILD_SHARED_LIBS)
103-
add_library(${staticlibname} STATIC ${srcslist} ${${LIBNAME_UPPER}_STATIC_SRCS})
104-
DEFINE_DLL_EXPORTS(${staticlibname})
105-
if(NOT ${libs} MATCHES "NONE")
106-
target_link_libraries(${staticlibname} "${libslist}")
107-
DEFINE_DLL_IMPORTS(${staticlibname} ${libslist})
108-
endif(NOT ${libs} MATCHES "NONE")
109-
if(NOT WIN32)
110-
set_target_properties(${staticlibname} PROPERTIES OUTPUT_NAME "${libname}")
111-
endif(NOT WIN32)
112-
if(WIN32)
113-
# We need the lib prefix on win32, so add it even if our add_library
114-
# wrapper function has removed it due to the target name - see
115-
# http://www.cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
116-
set_target_properties(${staticlibname} PROPERTIES PREFIX "lib")
117-
endif(WIN32)
118-
if(NOT ${LIBNAME_UPPER}_NO_INSTALL AND NOT ${LIBNAME_UPPER}_TESTABLE)
119-
install(TARGETS ${libname}-static
120-
RUNTIME DESTINATION ${BIN_DIR}
121-
LIBRARY DESTINATION ${LIB_DIR}
122-
ARCHIVE DESTINATION ${LIB_DIR}
123-
)
124-
endif(NOT ${LIBNAME_UPPER}_NO_INSTALL AND NOT ${LIBNAME_UPPER}_TESTABLE)
125-
if(NOT SC_ENABLE_TESTING AND ${LIBNAME_UPPER}_TESTABLE)
126-
set_target_properties( ${libname}-static PROPERTIES EXCLUDE_FROM_ALL ON )
127-
endif(NOT SC_ENABLE_TESTING AND ${LIBNAME_UPPER}_TESTABLE)
47+
if(${_arg_prefix}_SHARED)
48+
add_library(${_addlib_target} SHARED ${${_arg_prefix}_SOURCES})
49+
set_target_properties(${_addlib_target} PROPERTIES VERSION ${SC_ABI_VERSION} SOVERSION ${SC_ABI_SOVERSION})
12850
if(APPLE)
129-
set_target_properties(${staticlibname} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
51+
set_target_properties(${_addlib_target} PROPERTIES LINK_FLAGS "-flat_namespace -undefined suppress")
13052
endif(APPLE)
131-
endif(SC_BUILD_STATIC_LIBS)
132-
# Enable extra compiler flags if local libraries and/or global options dictate
133-
set(LOCAL_COMPILE_FLAGS "")
134-
foreach(extraarg ${ARGN})
135-
if(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
136-
set(LOCAL_COMPILE_FLAGS "${LOCAL_COMPILE_FLAGS} ${STRICT_FLAGS}")
137-
endif(${extraarg} MATCHES "STRICT" AND SC-ENABLE_STRICT)
138-
endforeach(extraarg ${ARGN})
139-
if(LOCAL_COMPILE_FLAGS)
140-
if(BUILD_SHARED_LIBS)
141-
set_target_properties(${libname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
142-
endif(BUILD_SHARED_LIBS)
143-
if(BUILD_STATIC_LIBS)
144-
set_target_properties(${staticlibname} PROPERTIES COMPILE_FLAGS ${LOCAL_COMPILE_FLAGS})
145-
endif(BUILD_STATIC_LIBS)
146-
endif(LOCAL_COMPILE_FLAGS)
147-
endmacro(SC_ADDLIB libname srcslist libslist)
53+
elseif(${_arg_prefix}_STATIC)
54+
add_library(${_addlib_target} STATIC ${${_arg_prefix}_SOURCES})
55+
target_compile_definitions(${_addlib_target} PRIVATE SC_STATIC)
56+
else()
57+
message(SEND_ERROR "SC_ADDLIB usage error!")
58+
endif()
59+
60+
if(DEFINED ${_arg_prefix}_LINK_LIBRARIES)
61+
foreach(_lib ${${_arg_prefix}_LINK_LIBRARIES})
62+
if(${_arg_prefix}_STATIC AND TARGET ${_lib})
63+
get_property(_libtype TARGET ${_lib} PROPERTY TYPE)
64+
if(NOT ${_libtype} STREQUAL "STATIC_LIBRARY")
65+
message(SEND_ERROR "SC_ADDLIB usage error - expected (static) LINK_LIBRARIES targets (${_lib})")
66+
endif()
67+
endif()
68+
target_link_libraries(${_addlib_target} ${_lib})
69+
endforeach()
70+
endif()
71+
72+
if(NOT ${_arg_prefix}_NO_INSTALL AND NOT ${_arg_prefix}_TESTABLE)
73+
install(TARGETS ${_addlib_target}
74+
RUNTIME DESTINATION ${BIN_DIR}
75+
LIBRARY DESTINATION ${LIB_DIR}
76+
ARCHIVE DESTINATION ${LIB_DIR}
77+
)
78+
endif()
79+
endmacro()
14880

14981
# Local Variables:
15082
# tab-width: 8

cmake/sc_version_string.cmake

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,22 +45,11 @@ endif()
4545
string(REPLACE "\n" "" GIT_COMMIT_ID ${GIT_COMMIT_ID})
4646

4747
#-------------- date and time ---------------
48-
#once cmake_minimum_required is >= 2.8.11, we can use TIMESTAMP:
49-
#string(TIMESTAMP date_time_string)
5048

5149
if(SC_ENABLE_TESTING)
5250
set (date_time_string "NA - disabled for testing")
53-
elseif(UNIX)
54-
execute_process(COMMAND date "+%d %b %Y %H:%M" OUTPUT_VARIABLE date_time_string OUTPUT_STRIP_TRAILING_WHITESPACE)
55-
elseif(WIN32)
56-
execute_process(COMMAND cmd /c date /t OUTPUT_VARIABLE currentDate OUTPUT_STRIP_TRAILING_WHITESPACE)
57-
execute_process(COMMAND cmd /c time /t OUTPUT_VARIABLE currentTime OUTPUT_STRIP_TRAILING_WHITESPACE)
58-
set (date_time_string "${currentDate} ${currentTime}")
5951
else()
60-
set(date_time_string "\" __DATE__ \" \" __TIME__ \" ")
61-
if(NOT SC_IS_SUBBUILD)
62-
message(STATUS "Unknown platform - using date from preprocessor")
63-
endif(NOT SC_IS_SUBBUILD)
52+
string(TIMESTAMP date_time_string UTC)
6453
endif()
6554

6655
set(header_string "/* sc_version_string.h - written by cmake. Changes will be lost! */\n"

cmake/schema_scanner/CMakeLists.txt

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
project(SC_SUBPROJECT_SCHEMA_SCANNER)
2-
cmake_minimum_required(VERSION 2.8.7)
2+
cmake_minimum_required(VERSION 3.6.3)
33

44
if(NOT ("${CALLED_FROM}" STREQUAL "STEPCODE_CMAKELISTS" AND DEFINED SC_ROOT AND DEFINED SC_BUILDDIR))
55
message(" ${CALLED_FROM} ${SC_ROOT} ${SC_BUILDDIR}")
@@ -54,19 +54,16 @@ include_directories(
5454
${SC_BUILDDIR}/include
5555
)
5656

57+
add_executable(schema_scanner ${schema_scanner_src})
58+
5759
if(MSVC)
58-
add_definitions(-D__MSVC__ -D__WIN32__)
5960
# Disable warning for preferred usage of secure functions (example strcpy should be strcpy_s, ...)
60-
add_definitions(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS)
61-
elseif(BORLAND)
62-
add_definitions(-D__BORLAND__ -D__WIN32__)
61+
target_compile_definitions(schema_scanner PUBLIC _CRT_SECURE_NO_WARNINGS _CRT_NONSTDC_NO_WARNINGS)
6362
else()
64-
add_definitions(-pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
63+
target_compile_options(schema_scanner PUBLIC -pedantic -W -Wall -Wundef -Wfloat-equal -Wshadow -Winline -Wno-long-long)
6564
endif()
6665

67-
add_definitions(-DSCHEMA_SCANNER)
68-
69-
add_executable(schema_scanner ${schema_scanner_src})
66+
target_compile_definitions(schema_scanner PUBLIC SC_STATIC SCHEMA_SCANNER)
7067

7168
# Local Variables:
7269
# tab-width: 8

0 commit comments

Comments
 (0)