-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
124 lines (102 loc) · 3.7 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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
cmake_minimum_required(VERSION 2.6)
project(MTMETIS)
find_package(OpenMP REQUIRED)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
if (DEFINED DEBUG OR DEFINED ASSERT)
if (DEFINED DEBUG)
add_definitions(-DDEBUG=${DEBUG})
message("Debugging enabled")
endif()
if (DEFINED ASSERT)
add_definitions(-DUSE_ASSERTS=${ASSERT})
message("Assertions enabled")
else()
add_definitions(-DNDEBUG=1)
add_definitions(-DNDEBUG2=1)
endif()
set(CMAKE_BUILD_TYPE Debug)
message("Building a debug release")
else()
# Caveat(wtm): flag set for debugging and vtune
# set(CMAKE_BUILD_TYPE Release)
set(CMAKE_BUILD_TYPE RelWithDebInfo)
add_definitions(-DNDEBUG=1)
add_definitions(-DNDEBUG2=1)
message("Building an optimized release")
endif()
if (SHARED)
set(MTMETIS_LIBRARY_TYPE SHARED)
else()
set(MTMETIS_LIBRARY_TYPE STATIC)
endif()
if (DEFINED BIGEDGES)
add_definitions(-DWILDRIVER_INDEX_TYPE=uint64_t)
add_definitions(-DMTMETIS_64BIT_EDGES=${BIGEDGES})
else()
add_definitions(-DWILDRIVER_INDEX_TYPE=uint32_t)
endif()
if (DEFINED BIGVERTICES)
add_definitions(-DWILDRIVER_DIMENSION_TYPE=uint64_t)
add_definitions(-DMTMETIS_64BIT_VERTICES=${BIGVERTICES})
else()
add_definitions(-DWILDRIVER_DIMENSION_TYPE=uint32_t)
endif()
if (DEFINED BIGWEIGHTS)
add_definitions(-DWILDRIVER_VALUE_TYPE=int64_t)
add_definitions(-DMTMETIS_64BIT_WEIGHTS=${BIGWEIGHTS})
else()
add_definitions(-DWILDRIVER_VALUE_TYPE=int32_t)
endif()
if (DEFINED BIGPARTITIONS)
add_definitions(-DWILDRIVER_64BIT_PARTITIONS=${BIGPARTITIONS})
add_definitions(-DMTMETIS_64BIT_PARTITIONS=${BIGPARTITIONS})
endif()
if (DEFINED BIGEDGES OR DEFINED BIGVERTICES OR DEFINED BIGWEIGHTS)
add_definitions(-DIDXTYPEWIDTH=64)
endif()
set(REQ_LIBS ${REQ_LIBS} m)
if (DEFINED DEVEL AND NOT DEVEL EQUAL 0)
message("Development warnings enabled")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-prototypes")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wmissing-declarations")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wstrict-aliasing")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-parameter")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-function")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fstrict-aliasing")
endif()
# Caveat(wtm): flag set for debugging and vtune
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g")
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99 -g -fsanitize=address")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
if ("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -no-ansi-alias")
endif()
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
# handle graph utils wgts
add_definitions(-DWILDRIVER_INT_WEIGHTS=1)
include_directories("${CMAKE_SOURCE_DIR}/include")
include_directories("${DOMLIB_PATH}")
include_directories("${WILDRIVER_PATH}/include")
include_directories("${METIS_PATH}/include")
include_directories("${METIS_PATH}/libmetis")
include_directories("${METIS_PATH}/GKlib")
set(WILDRIVER_LIB_PATH "${CMAKE_SOURCE_DIR}/${WILDRIVER_PATH}/src")
set(METIS_LIB_PATH "${CMAKE_SOURCE_DIR}/${METIS_PATH}/libmetis")
add_subdirectory("include")
if (DEFINED TESTS AND NOT TESTS EQUAL 0)
enable_testing()
endif()
# build wildriver first
add_subdirectory("wildriver")
add_subdirectory("src")
if (DEFINED TESTS AND NOT TESTS EQUAL 0)
add_subdirectory(apitest)
endif()