-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
48 lines (39 loc) · 1.64 KB
/
CMakeLists.txt
File metadata and controls
48 lines (39 loc) · 1.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
cmake_minimum_required(VERSION 3.16)
project(DAGHL)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_CXX_FLAGS "-pipe -march=native -Wfatal-errors -pthread -fopenmp")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
set(CMAKE_CXX_FLAGS_RELEASE "-ffast-math -DNDEBUG -O3 -g")
set(CMAKE_CXX_FLAGS_DEBUG "-Werror -Wall -Wextra -g -fno-omit-frame-pointer -O0")
set(CMAKE_CXX_FLAGS_SANITIZE "-fsanitize=address,undefined -fno-omit-frame-pointer -g -O1")
set(CMAKE_LINKER_FLAGS_SANITIZE "-fsanitize=address,undefined")
add_compile_options(-Wno-gnu-anonymous-struct -Wno-nested-anon-types)
if(CMAKE_BUILD_TYPE STREQUAL "Sanitize")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_SANITIZE}")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_LINKER_FLAGS_SANITIZE}")
message(STATUS "Sanitizer build enabled")
endif()
add_executable(PPL main.cpp)
target_include_directories(PPL PUBLIC datastructures external external/CompactDeltaVector)
find_package(TBB REQUIRED)
target_link_libraries(PPL PRIVATE TBB::tbb)
enable_testing()
find_package(GTest)
if(GTest_FOUND)
add_executable(unit_test
tests/bit_vector_test.cpp
tests/simd_test.cpp
tests/bfs_tools_test.cpp
tests/graph_test.cpp
tests/path_labels_test.cpp
tests/chain_test.cpp
)
target_include_directories(unit_test PUBLIC datastructures external)
target_link_libraries(unit_test PRIVATE GTest::gtest_main)
# target_compile_options(unit_test PRIVATE -fopenmp)
add_test(NAME unit_test COMMAND unit_test)
else()
message(STATUS "GoogleTest not found, skipping unit tests")
endif()