-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
134 lines (123 loc) · 3.7 KB
/
Copy pathCMakeLists.txt
File metadata and controls
134 lines (123 loc) · 3.7 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
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
124
125
126
127
128
129
130
131
132
133
134
cmake_minimum_required(VERSION 3.22)
project(Superpixels)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CUDA_STANDARD 17)
find_package(CUDA REQUIRED)
enable_language(CUDA)
find_package(CUDAToolkit REQUIRED)
# Modern CUDA setup
set(CMAKE_CUDA_SEPARABLE_COMPILATION ON)
set(CMAKE_CUDA_RESOLVE_DEVICE_SYMBOLS ON)
# Set CUDA flags the modern way
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -O3 --extended-lambda")
set(CMAKE_CUDA_ARCHITECTURES "75" "86") # Much cleaner than gencode
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
# Check if the custom OpenCV build exists
if(EXISTS "/home/gauenk/Documents/packages/opencv-py10.0/build/")
# message(STATUS "Using custom OpenCV build")
set(OpenCV_DIR "/home/gauenk/Documents/packages/opencv-py10.0/build/")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_DIR} include)
else()
# message(STATUS "Using system OpenCV")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
endif()
set(SHARED_SOURCES
bist/csrc/init_utils.cu
)
set(SHARED_SOURCES_2D
bist/csrc/bass.cu
bist/csrc/bist.cu
bist/csrc/logger.cu
bist/csrc/main_utils.cu
bist/csrc/utils.cu
bist/csrc/file_io.cpp
bist/csrc/init_sparams.cu
bist/csrc/rgb2lab.cu
bist/csrc/compact_spix.cu
bist/csrc/compact_spix_cub.cu
bist/csrc/seg_utils.cu
bist/csrc/update_params.cu
bist/csrc/update_seg.cu
bist/csrc/split_merge.cu
bist/csrc/split_merge_orig.cu
bist/csrc/split_merge_prop.cu
bist/csrc/sparams_io.cu
bist/csrc/shift_and_fill.cu
bist/csrc/shift_labels.cu
bist/csrc/fill_missing.cu
bist/csrc/init_seg.cu
bist/csrc/sp_pooling.cu
bist/csrc/split_disconnected.cu
bist/csrc/relabel.cu
bist/csrc/lots_of_merge.cu
)
set(SHARED_SOURCES_3D
bist/csrc/bass3d.cu
bist/csrc/scannet_reader.cu
bist/csrc/compact_spix_3d.cu
bist/csrc/flood_fill.cu
bist/csrc/manifold_edges.cu
bist/csrc/extract_edges.cu
bist/csrc/csr_edges.cu
bist/csrc/graph_coloring.cu
bist/csrc/sparams_io_3d.cu
bist/csrc/init_seg_3d.cu
bist/csrc/seg_utils_3d.cu
bist/csrc/update_params_3d.cu
bist/csrc/update_seg_3d.cu
bist/csrc/articulation_points.cu
bist/csrc/poly_from_points.cu
bist/csrc/border_edges.cu
bist/csrc/logger_3d.cu
bist/csrc/face_dual.cu
)
# Explicitly mark .cu files as CUDA
set_source_files_properties(
bist/csrc/main.cu
bist/csrc/main3d.cu
bist/csrc/main_utils.cu
bist/csrc/scannet_reader.cu
bist/csrc/compact_spix_3d.cu
bist/csrc/extract_edges.cu
bist/csrc/csr_edges.cu
bist/csrc/graph_coloring.cu
bist/csrc/logger.cu
bist/csrc/bass.cu
bist/csrc/bass3d.cu
bist/csrc/bist.cu
bist/csrc/init_utils.cu
bist/csrc/init_seg.cu
bist/csrc/init_sparams.cu
bist/csrc/rgb2lab.cu
bist/csrc/compact_spix.cu
bist/csrc/compact_spix_cub.cu
bist/csrc/seg_utils.cu
bist/csrc/update_params.cu
bist/csrc/update_seg.cu
bist/csrc/split_merge.cu
bist/csrc/split_merge_orig.cu
bist/csrc/split_merge_prop.cu
bist/csrc/sparams_io.cu
bist/csrc/shift_and_fill.cu
bist/csrc/shift_labels.cu
bist/csrc/fill_missing.cu
bist/csrc/sp_pooling.cu
bist/csrc/split_disconnected.cu
bist/csrc/relabel.cu
bist/csrc/lots_of_merge.cu
PROPERTIES LANGUAGE CUDA
)
# 2D
add_executable(bist bist/csrc/main.cu ${SHARED_SOURCES} ${SHARED_SOURCES_2D})
target_link_libraries(bist ${OpenCV_LIBS} cuda cublas cudadevrt) # CUDA linking
set_target_properties(bist PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin
)
# 3D
add_executable(bist3d bist/csrc/main3d.cu ${SHARED_SOURCES} ${SHARED_SOURCES_3D})
target_link_libraries(bist3d ${OpenCV_LIBS} cuda cublas cudadevrt) # CUDA linking
set_target_properties(bist3d PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin
)