-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathCMakeLists.txt
104 lines (87 loc) · 3.44 KB
/
CMakeLists.txt
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
cmake_minimum_required(VERSION 2.8.9)
project(components)
find_package(MPI REQUIRED)
set(OMPI_CC gcc-8)
set(OMPI_CXX g++-8)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif (NOT CMAKE_BUILD_TYPE)
set(KACOMP_DEFINITIONS "")
option(KACOMP_TIEBREAK_DEGREE "Tiebreak based on degree instead of ID." OFF)
option(KACOMP_MEMINFO "Show memory consumed." OFF)
if(KACOMP_TIEBREAK_DEGREE)
set(KACOMP_DEFINITIONS "${KACOMP_DEFINITIONS} -DTIEBREAK_DEGREE")
endif()
if(KACOMP_MEMINFO)
set(KACOMP_DEFINITIONS "${KACOMP_DEFINITIONS} -DMEMINFO")
endif()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${KACOMP_DEFINITIONS}")
include_directories(SYSTEM ${MPI_CXX_INCLUDE_PATH})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MPI_COMPILE_FLAGS} -std=c++14 -fno-omit-frame-pointer -march=native -DNDEBUG -DNSTATUS -DNWARMUP -Wall -fPIC -O3 -g")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MPI_COMPILE_FLAGS} -fsanitize=address -std=c++14 -fno-omit-frame-pointer -march=native -fno-stack-limit -Wall -fPIC -Og -g")
set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} ${MPI_LINK_FLAGS}")
add_subdirectory(extern/kagen)
# add_subdirectory(extern/KaHIP)
add_subdirectory("${PROJECT_SOURCE_DIR}/extern/ips4o")
include_directories("${PROJECT_SOURCE_DIR}/extern/mxx/include")
include_directories("${PROJECT_SOURCE_DIR}/extern")
add_subdirectory("${PROJECT_SOURCE_DIR}/extern/bliss") #BLISS cmake needs to be executed
include_directories("${PROJECT_SOURCE_DIR}/extern/bliss/src/")
include_directories("${PROJECT_SOURCE_DIR}/extern/bliss/ext/")
#include our build directory for bliss config files
include_directories("${CMAKE_BINARY_DIR}")
include_directories(
app
lib
lib/communication
lib/components
lib/contraction
lib/data_structures
lib/io
lib/tools
extern/kagen/extlib/sampling/sampling
extern/kagen/include
extern/kagen/include/generators
extern/kagen/include/generators/barabassi
extern/kagen/include/generators/geometric
extern/kagen/include/generators/geometric/delaunay
extern/kagen/include/generators/geometric/rgg
extern/kagen/include/generators/gnm
extern/kagen/include/generators/gnp
extern/kagen/include/generators/hyperbolic
extern/kagen/include/io
extern/kagen/include/tools
extern/kagen/interface/
)
set(SOURCES
app
lib
lib/communication
lib/communication/vertex_comm.cpp
lib/components
lib/contraction
lib/data_structures
lib/data_structures/dynamic_graph_comm.cpp
lib/data_structures/semidynamic_graph_comm.cpp
lib/data_structures/static_graph_comm.cpp
lib/io
lib/tools
)
add_executable(exponential ${SOURCES} "app/exp_contraction.cpp")
add_executable(allreduce ${SOURCES} "app/all_reduce.cpp")
# add_executable(local ${SOURCES} "app/local_contraction.cpp")
# add_executable(shortcuts ${SOURCES} "app/shortcuts.cpp")
# add_executable(labels ${SOURCES} "app/labels.cpp")
set(LIBS
spooky
sampling
${MPI_LIBRARIES}
ips4o
# asan
)
target_link_libraries(exponential LINK_PUBLIC ${LIBS})
target_link_libraries(allreduce LINK_PUBLIC ${LIBS})
# target_link_libraries(local LINK_PUBLIC ${LIBS})
# target_link_libraries(shortcuts LINK_PUBLIC ${LIBS})
# target_link_libraries(labels LINK_PUBLIC ${LIBS})