1 # SPDX-FileCopyrightText: 2021 Jiri Vlasak <jiri.vlasak.2@cvut.cz>
3 # SPDX-License-Identifier: GPL-3.0-only
5 cmake_minimum_required(VERSION 3.8)
8 set(CMAKE_CXX_STANDARD 17)
9 # Require compiler version (g++ >= 7 tested)
10 if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7)
11 message(FATAL_ERROR "GCC version must be at least 7!")
14 #set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
15 #set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address")
17 add_compile_options(-Wall -Wextra -pedantic -Werror)
19 add_library(bcar STATIC src/bcar.cc)
20 target_include_directories(bcar PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incl)
22 add_library(pslot STATIC src/pslot.cc)
23 target_include_directories(pslot PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incl)
24 target_link_libraries(pslot bcar)
26 add_executable(compute_pslot_table src/compute_pslot_table.cc)
27 target_link_libraries(compute_pslot_table pslot)
29 add_executable(prove_parallel_slot src/prove_parallel_slot.cc)
30 target_link_libraries(prove_parallel_slot pslot)
32 add_executable(entry_positions_range src/entry_positions_range.cc)
33 target_link_libraries(entry_positions_range pslot)
35 add_executable(compare_to_vorobieva src/compare_to_vorobieva.cc)
36 target_link_libraries(compare_to_vorobieva pslot)
38 add_executable(compare_to_zips src/compare_to_zips.cc)
39 target_link_libraries(compare_to_zips pslot)
41 add_executable(compare_to_li src/compare_to_li.cc)
42 target_link_libraries(compare_to_li pslot)
44 add_executable(gen_for_gnuplot src/gen_for_gnuplot.cc)
45 target_link_libraries(gen_for_gnuplot pslot)
51 wvtest/cpp/wvtestmain.cc
56 target_compile_definitions(ut PRIVATE WVTEST_CONFIGURED)
57 target_include_directories(ut PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/wvtest/cpp)
58 target_link_libraries(ut bcar pslot)
59 add_custom_command(TARGET ut
60 POST_BUILD COMMAND ./wvtestrun ../build/ut
61 WORKING_DIRECTORY ../wvtest