X-Git-Url: http://rtime.felk.cvut.cz/gitweb/hubacji1/bcar.git/blobdiff_plain/4b9e796efc29f11b0472889677009eb756f19f74..HEAD:/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 88595f4..982eed0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,21 +1,62 @@ -cmake_minimum_required(VERSION 2.8) +# SPDX-FileCopyrightText: 2021 Jiri Vlasak +# +# SPDX-License-Identifier: GPL-3.0-only + +cmake_minimum_required(VERSION 3.8) project(bcar) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/incl) +set(CMAKE_CXX_STANDARD 17) +# Require compiler version (g++ >= 7 tested) +if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7) + message(FATAL_ERROR "GCC version must be at least 7!") +endif() + +#set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") +#set (CMAKE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") + +add_compile_options(-Wall -Wextra -pedantic -Werror) + +add_library(bcar STATIC src/bcar.cc) +target_include_directories(bcar PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incl) + +add_library(pslot STATIC src/pslot.cc) +target_include_directories(pslot PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/incl) +target_link_libraries(pslot bcar) + +add_executable(compute_pslot_table src/compute_pslot_table.cc) +target_link_libraries(compute_pslot_table pslot) -add_library(bcar SHARED src/bcar.cc) -set_target_properties(bcar PROPERTIES PUBLIC_HEADER incl/bcar.hh) +add_executable(prove_parallel_slot src/prove_parallel_slot.cc) +target_link_libraries(prove_parallel_slot pslot) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/wvtest/cpp) -ADD_DEFINITIONS(-DWVTEST_CONFIGURED) +add_executable(entry_positions_range src/entry_positions_range.cc) +target_link_libraries(entry_positions_range pslot) + +add_executable(compare_to_vorobieva src/compare_to_vorobieva.cc) +target_link_libraries(compare_to_vorobieva pslot) + +add_executable(compare_to_zips src/compare_to_zips.cc) +target_link_libraries(compare_to_zips pslot) + +add_executable(compare_to_li src/compare_to_li.cc) +target_link_libraries(compare_to_li pslot) + +add_executable(gen_for_gnuplot src/gen_for_gnuplot.cc) +target_link_libraries(gen_for_gnuplot pslot) + +if (SKIP_UT) + return() +endif() add_executable(ut - wvtest/cpp/wvtestmain.cc - wvtest/cpp/wvtest.cc - ut/bcar.t.cc + wvtest/cpp/wvtestmain.cc + wvtest/cpp/wvtest.cc + ut/bcar.t.cc + ut/pslot.t.cc ) -target_link_libraries(ut bcar) - +target_compile_definitions(ut PRIVATE WVTEST_CONFIGURED) +target_include_directories(ut PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/wvtest/cpp) +target_link_libraries(ut bcar pslot) add_custom_command(TARGET ut - POST_BUILD COMMAND ./wvtestrun ../build/ut - WORKING_DIRECTORY ../wvtest + POST_BUILD COMMAND ./wvtestrun ../build/ut + WORKING_DIRECTORY ../wvtest )