summaryrefslogtreecommitdiff
path: root/matching/CMakeLists.txt
blob: 93843281c7232816c8fbd38b9d9a65842e2d4636 (plain)
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
project(matching_distance)
cmake_minimum_required(VERSION 3.5.1)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

include(GenerateExportHeader)
find_package(Boost REQUIRED)

# Default to Release

if (NOT CMAKE_BUILD_TYPE)
    set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
    set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "MinSizeRel" "RelWithDebInfo")
endif (NOT CMAKE_BUILD_TYPE)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include
        SYSTEM ${BOOST_INCLUDE_DIR}
        ${CMAKE_CURRENT_SOURCE_DIR}/../bottleneck/include)

set(CMAKE_CXX_STANDARD 14)


if (NOT WIN32)
    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  ${OpenMP_CXX_FLAGS} -Wall pedantic -Wextra ")
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  ${OpenMP_CXX_FLAGS} -Wall -Wextra ")
    set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -D_GLIBCXX_DEBUG")
    set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} -O2 -g -ggdb")
endif (NOT WIN32)

file(GLOB BT_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/../bottleneck/include/*.h ${CMAKE_CURRENT_SOURCE_DIR}/../bottleneck/include/*.hpp)
file(GLOB MD_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/include/*.h)

file(GLOB SRC_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp)

file(GLOB SRC_TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/tests/*.cpp)

find_package(Threads)
set(libraries ${libraries} "stdc++fs" ${CMAKE_THREAD_LIBS_INIT} ${OpenMP_CXX_LIBRARIES})


find_package(OpenMP)
if (OPENMP_FOUND)
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()


#add_executable(matching_distance ${SRC_FILES} ${BT_HEADERS} ${MD_HEADERS})
add_executable(matching_distance "src/main.cpp"
        "src/box.cpp"
        "src/common_util.cpp"
        "src/persistence_module.cpp"
        "src/simplex.cpp"
        "src/bifiltration.cpp"
        "src/matching_distance.cpp"
        "src/dual_box.cpp"
        "src/dual_point.cpp"
        "include/box.h"
        "include/common_util.h"
        "include/persistence_module.h"
        "include/simplex.h"
        "include/bifiltration.h"
        "include/matching_distance.h"
        "include/dual_box.h"
        "include/dual_point.h"
        ${BT_HEADERS} include/cell_with_value.h src/cell_with_value.cpp)
target_link_libraries(matching_distance PUBLIC ${libraries})

#add_executable(matching_distance_test ${SRC_TEST_FILES} ${BT_HEADERS} ${MD_HEADERS})
add_executable(matching_distance_test ${SRC_TEST_FILES}
        "src/box.cpp"
        "src/common_util.cpp"
        "src/persistence_module.cpp"
        "src/simplex.cpp"
        "src/bifiltration.cpp"
        "src/matching_distance.cpp"
        "src/dual_box.cpp"
        "src/dual_point.cpp"
        "include/box.h"
        "include/common_util.h"
        "include/persistence_module.h"
        "include/simplex.h"
        "include/bifiltration.h"
        "include/matching_distance.h"
        "include/dual_box.h"
        "include/dual_point.h"
        ${BT_HEADERS} src/tests/test_common.cpp  src/common_util.cpp src/tests/test_matching_distance.cpp src/cell_with_value.cpp)
target_link_libraries(matching_distance_test PUBLIC ${libraries})

add_executable(test_generator "src/test_generator.cpp"
        "src/box.cpp"
        "src/common_util.cpp"
        "src/persistence_module.cpp"
        "src/simplex.cpp"
        "src/bifiltration.cpp"
        "src/matching_distance.cpp"
        "src/dual_box.cpp"
        "src/dual_point.cpp"
        "include/box.h"
        "include/common_util.h"
        "include/persistence_module.h"
        "include/simplex.h"
        "include/bifiltration.h"
        "include/matching_distance.h"
        "include/dual_box.h"
        "include/dual_point.h"
        ${BT_HEADERS} src/cell_with_value.cpp)
target_link_libraries(test_generator PUBLIC ${libraries})

#add_executable(matching_distance "src/main.cpp" "src/box.cpp" "src/common_util.cpp" "src/line.cpp" "src/persistence_module.cpp" ${BT_HEADERS} ${MD_HEADERS})