11cmake_minimum_required (VERSION 3.9..3.21)
22
3- #### PREPARATIONS ##################################################
3+ # ### PREPARATIONS ##################################################
44set (CMAKE_SCRIPTS "cmake" )
55set (CMAKE_MODULE_PATH
6- ${CMAKE_SOURCE_DIR} /${CMAKE_SCRIPTS} /modules
7- ${CMAKE_SOURCE_DIR} /${CMAKE_SCRIPTS}
8- ${CMAKE_SOURCE_DIR} # for .version.cmake & .options.cmake
9- ${CMAKE_MODULE_PATH} )
10-
11- #### INCLUDES ##################################################
12-
13- if (EXISTS ${CMAKE_SOURCE_DIR} /.version .cmake)
14- message (" version decl file found: ${CMAKE_SOURCE_DIR} /.version.cmake" )
15- include (.version )
16- message (" USING VERSION = ${VERSION} " )
17- else ()
18- message (" version decl file ignored" )
19- set (VERSION 0.1.0.1)
20- endif ()
21-
22-
23- #### OPTIONS ##################################################
6+ ${CMAKE_SOURCE_DIR} /${CMAKE_SCRIPTS} /modules
7+ ${CMAKE_SOURCE_DIR} /${CMAKE_SCRIPTS}
8+ ${CMAKE_SOURCE_DIR} # for .version.cmake & .options.cmake
9+ ${CMAKE_MODULE_PATH} )
10+
11+ # ### INCLUDES ##################################################
12+ if (EXISTS ${CMAKE_SOURCE_DIR} /.version .cmake)
13+ message (" version decl file found: ${CMAKE_SOURCE_DIR} /.version.cmake" )
14+ include (.version )
15+ message (" USING VERSION = ${VERSION} " )
16+ else ()
17+ message (" version decl file ignored" )
18+ set (VERSION 0.1.0.1)
19+ endif ()
20+
21+ # ### OPTIONS ##################################################
2422
2523# cmake -S. -Bbuild -DFSM_CXX_STANDARD:STRING=20
2624set (FSM_CXX_STANDARD 17 CACHE STRING "Define The C++ Standard, default is 17" )
@@ -31,48 +29,44 @@ option(FSM_CXX_BUILD_DOC "PL-OK" OFF)
3129option (FSM_CXX_ENABLE_ASSERTIONS "PL-OK" ON )
3230option (FSM_CXX_ENABLE_PRECONDITION_CHECKS "PL-OK" ON )
3331
34-
35- #### PROJECTS ##################################################
36-
32+ # ### PROJECTS ##################################################
3733project (fsm_cxx
38- VERSION ${VERSION}
39- DESCRIPTION "fsm-cxx is a finite state machine within c++17."
40- LANGUAGES CXX)
34+ VERSION ${VERSION}
35+ DESCRIPTION "fsm-cxx is a finite state machine within c++17."
36+ LANGUAGES CXX)
4137
4238set (detail_header_files
43- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/detail/fsm-if.hh
44- )
39+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/detail/fsm-if.hh
40+ )
4541set (header_files
46- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-assert.hh
47- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-common.hh
48- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-config.hh
49- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-debug.hh
50- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-def.hh
51- ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-sm.hh
52- )
42+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-assert.hh
43+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-common.hh
44+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-config.hh
45+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-debug.hh
46+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-def.hh
47+ ${CMAKE_CURRENT_SOURCE_DIR} /include /fsm_cxx/fsm-sm.hh
48+ )
5349
5450set (CMAKE_CXX_STANDARD ${FSM_CXX_STANDARD} )
5551set (CMAKE_CXX_STANDARD_REQUIRED ON )
5652set (CMAKE_CXX_EXTENSIONS OFF )
5753
5854# Just for QT app ...
59- #set(CMAKE_AUTOMOC ON) # Qt moc, meta-object compiler
60- #set(CMAKE_AUTORCC ON) # Qt rcc, resources compiler
61- #set(CMAKE_AUTOUIC ON) # Qt uic, User-Interface compiler
62-
63-
55+ # set(CMAKE_AUTOMOC ON) # Qt moc, meta-object compiler
56+ # set(CMAKE_AUTORCC ON) # Qt rcc, resources compiler
57+ # set(CMAKE_AUTOUIC ON) # Qt uic, User-Interface compiler
6458add_library (fsm_cxx INTERFACE )
6559target_sources (fsm_cxx INTERFACE "$<BUILD_INTERFACE:${detail_header_files} ;${header_files} >" )
6660target_include_directories (fsm_cxx INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include />)
6761target_include_directories (fsm_cxx SYSTEM INTERFACE $<INSTALL_INTERFACE:$<INSTALL_PREFIX >/include >)
6862target_compile_definitions (fsm_cxx INTERFACE
69- FSM_CXX_ENABLE_ASSERTIONS=${_fsm_cxx_enable_assertions}
70- FSM_CXX_ENABLE_PRECONDITION_CHECKS=${_fsm_cxx_enable_precondition_checks} )
71- #target_link_libraries(fsm_cxx INTERFACE debug_assert)
63+ FSM_CXX_ENABLE_ASSERTIONS=${_fsm_cxx_enable_assertions}
64+ FSM_CXX_ENABLE_PRECONDITION_CHECKS=${_fsm_cxx_enable_precondition_checks} )
7265
73- if (MSVC )
74- target_compile_options (fsm_cxx INTERFACE /wd4800) # truncation to bool warning
75- endif ()
66+ # target_link_libraries(fsm_cxx INTERFACE debug_assert)
67+ if (MSVC )
68+ target_compile_options (fsm_cxx INTERFACE /wd4800) # truncation to bool warning
69+ endif ()
7670
7771# Setup package config
7872include (CMakePackageConfigHelpers)
@@ -85,9 +79,9 @@ set(fsm_cxx_LIBRARIES fsm_cxx)
8579" )
8680
8781write_basic_package_version_file(
88- ${CMAKE_CURRENT_BINARY_DIR} /fsm_cxx-config-version .cmake
89- VERSION ${VERSION}
90- COMPATIBILITY SameMajorVersion
82+ ${CMAKE_CURRENT_BINARY_DIR} /fsm_cxx-config-version .cmake
83+ VERSION ${VERSION}
84+ COMPATIBILITY SameMajorVersion
9185)
9286
9387# Install target and header
@@ -96,37 +90,37 @@ install(DIRECTORY include/fsm_cxx DESTINATION include)
9690install (FILES include /fsm_cxx.hh DESTINATION include )
9791
9892install (FILES
99- ${CMAKE_CURRENT_BINARY_DIR} /fsm_cxx-config.cmake
100- ${CMAKE_CURRENT_BINARY_DIR} /fsm_cxx-config-version .cmake
101- DESTINATION
102- ${CONFIG_PACKAGE_INSTALL_DIR} )
93+ ${CMAKE_CURRENT_BINARY_DIR} /fsm_cxx-config.cmake
94+ ${CMAKE_CURRENT_BINARY_DIR} /fsm_cxx-config-version .cmake
95+ DESTINATION
96+ ${CONFIG_PACKAGE_INSTALL_DIR} )
10397
10498# Only export target when using imported targets
105- if (FSM_CXX_HAS_IMPORTED_TARGETS)
106-
107- install (TARGETS fsm_cxx
108- EXPORT fsm_cxx-targets
109- DESTINATION lib)
99+ if (FSM_CXX_HAS_IMPORTED_TARGETS)
100+ install (TARGETS fsm_cxx
101+ EXPORT fsm_cxx-targets
102+ DESTINATION lib)
110103
111- install (EXPORT fsm_cxx-targets
112- DESTINATION
113- ${CONFIG_PACKAGE_INSTALL_DIR}
114- )
115-
116- endif ()
104+ install (EXPORT fsm_cxx-targets
105+ DESTINATION
106+ ${CONFIG_PACKAGE_INSTALL_DIR}
107+ )
108+ endif ()
117109
118110# other subdirectories
119111# only add if not inside add_subdirectory()
120112option (FSM_CXX_BUILD_TESTS_EXAMPLES "build test and example" OFF )
121- if (${FSM_CXX_BUILD_TESTS_EXAMPLES} OR (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR ))
122- enable_testing ()
123- add_subdirectory (examples/)
124- add_subdirectory (tests/)
125- endif ()
113+
114+ if (${FSM_CXX_BUILD_TESTS_EXAMPLES} OR (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR ))
115+ enable_testing ()
116+ add_subdirectory (examples/)
117+ add_subdirectory (tests/)
118+ endif ()
126119
127120option (FSM_CXX_BUILD_DOCS "generate documentation" OFF )
128- if (FSM_CXX_BUILD_DOCS)
129- add_subdirectory (docs/)
130- endif ()
121+
122+ if (FSM_CXX_BUILD_DOCS)
123+ add_subdirectory (docs/)
124+ endif ()
131125
132126message (STATUS "tail of top level : Using default C++ Standard ${FSM_CXX_STANDARD} " )
0 commit comments