1414# You should have received a copy of the GNU General Public License
1515# along with this program. If not, see <https://www.gnu.org/licenses/>.
1616cmake_minimum_required (VERSION 3.16) # 3.16+ because of target_precompiled_header
17- project (aaltitoad VERSION 1.0 .0)
17+ project (aaltitoad VERSION 1.1 .0)
1818set (THREADS_PREFER_PTHREAD_FLAG ON )
1919set (CMAKE_CXX_STANDARD 20)
2020set (CXX_STANDARD_REQUIRED ON )
2121set (SPDLOG_BUILD_SHARED)
2222set (CONFIG_IN_FILE src/config.h.in)
2323set (CONFIG_OUT_FILE config.h)
2424include (cmake/CPM.cmake)
25- include (cmake/VER.cmake) # TODO: make a yalibs release of this cmake file
25+ include (cmake/VER.cmake) # TODO: yalibs candidate
2626set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
2727set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} /lib)
2828set (CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR} )
2929set (CMAKE_MACOSX_RPATH 1)
3030list (APPEND CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_PREFIX} /lib)
3131
32+ find_package (BISON REQUIRED)
33+ find_package (FLEX REQUIRED)
34+
3235add_compile_definitions (DEFAULT_EXPRESSION_VALUE="true" )
33- CPMAddPackage(NAME expr VERSION 2.2 .0 GITHUB_REPOSITORY sillydan1/expr OPTIONS "ENABLE_Z3 ON" )
36+ CPMAddPackage(NAME expr VERSION 3.0 .0 GITHUB_REPOSITORY sillydan1/expr OPTIONS "ENABLE_Z3 ON" )
3437CPMAddPackage(
"gh:sillydan1/[email protected] " )
35- CPMAddPackage("gh:sillydan1/ctl-expr@1.1.2 " )
38+ CPMAddPackage("gh:sillydan1/ctl-expr@2.0.0 " )
3639
3740CPMAddPackage(
"gh:yalibs/[email protected] " )
3841CPMAddPackage(
"gh:yalibs/[email protected] " )
4447CPMAddPackage(
"gh:yalibs/[email protected] " )
4548CPMAddPackage(
"gh:yalibs/[email protected] " )
4649
47- CPMAddPackage("gh:gabime/spdlog@1.8.2 " )
48- CPMAddPackage("gh:nlohmann/json@3.10.5 " )
49- CPMAddPackage(
"gh:neargye/[email protected] .1 " )
50+ CPMAddPackage("gh:gabime/spdlog@1.11.0 " )
51+ CPMAddPackage("gh:nlohmann/json@3.11.2 " )
52+ CPMAddPackage(
"gh:neargye/[email protected] .2 " )
5053
51- CPMAddPackage(
"gh:cpm-cmake/[email protected] .5 " )
54+ CPMAddPackage(
"gh:cpm-cmake/[email protected] .6 " )
5255cpm_licenses_create_disclaimer_target(write_licenses "${CMAKE_BINARY_DIR} /third_party.txt" "${CPM_PACKAGES} " )
5356
54- set (${PROJECT_NAME} _SOURCES
57+ add_library (${PROJECT_NAME} SHARED
58+ src/expr -wrappers/interpreter.cpp
59+ src/expr -wrappers/parameterized-expr -evaluator.cpp
60+ src/expr -wrappers/parameterized-ast-factory.cpp
5561 src/ntta/builder/ntta_builder.cpp
5662 src/ntta/tta.cpp
5763 src/ntta/interesting_tocker.cpp
@@ -61,14 +67,11 @@ set(${PROJECT_NAME}_SOURCES
6167 src/util/warnings.cpp
6268 src/util/random.cpp
6369 src/util/string_extensions.cpp)
64-
65- # TODO: split the project up - each folder should have their own CMakeLists file
66- add_library (${PROJECT_NAME} SHARED ${${PROJECT_NAME} _SOURCES})
6770if (${CODE_COVERAGE} )
6871 target_link_options (${PROJECT_NAME} PUBLIC --coverage)
6972 target_compile_options (${PROJECT_NAME} PUBLIC --coverage)
7073endif ()
71- target_link_libraries (${PROJECT_NAME} expr dl pthread ctl )
74+ target_link_libraries (${PROJECT_NAME} PUBLIC expr_lang dl pthread ctl_lang )
7275target_include_directories (${PROJECT_NAME} PUBLIC
7376 ${CMAKE_BINARY_DIR}
7477 ${CMAKE_CURRENT_BINARY_DIR}
@@ -96,15 +99,19 @@ target_include_directories(${PROJECT_NAME} PUBLIC
9699 ${yapermutation_SOURCE_DIR} /include
97100 ${yasetwrappers_SOURCE_DIR} /include
98101 src
102+ # strictly not required, but it helps my clangd lsp setup and it doesn't hurt
103+ ${FLEX_INCLUDE_DIRS}
104+ ${BISON_INCLUDE_DIRS}
99105)
100106
101107add_compile_definitions (ENABLE_Z3)
102108add_subdirectory (src/cli/simulator)
103109add_subdirectory (src/cli/verifier)
110+ add_subdirectory (src/cli/detcheck)
104111add_subdirectory (src/parser)
105112add_subdirectory (test )
106113
107- install (TARGETS ${PROJECT_NAME} expr ctl )
114+ install (TARGETS ${PROJECT_NAME} expr_lang ctl_lang verifier simulator detcheck )
108115install (FILES src/man/tta.7 DESTINATION man/man7)
109116if (CMAKE_SYSTEM_NAME STREQUAL "Linux" )
110117 install (FILES ${CMAKE_BINARY_DIR} /libz3.so DESTINATION lib)
@@ -115,10 +122,9 @@ elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
115122else ()
116123 message (WARNING "unknown system ${CMAKE_SYSTEM_NAME} " )
117124endif ()
118-
119- # TODO: determine required header files for plugins and add them to the install target
120- # install(DIRECTORY src/ntta src/plugin_system src/util DESTINATION include FILES_MATCHING PATTERN "*.h")
125+ install (DIRECTORY src/ntta src/plugin_system src/util src/verification src/parser DESTINATION include FILES_MATCHING PATTERN "*.h" )
121126
122127if (NOT WIN32 )
123128 target_precompile_headers(${PROJECT_NAME} PUBLIC src/aaltitoadpch.h)
124129endif ()
130+
0 commit comments