-
Notifications
You must be signed in to change notification settings - Fork 1
/
CMakeLists.txt
453 lines (400 loc) · 20.5 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
# ECVL - European Computer Vision Library
# Version: 1.0.3
# copyright (c) 2021, Università degli Studi di Modena e Reggio Emilia (UNIMORE), AImageLab
# Authors:
# Costantino Grana ([email protected])
# Federico Bolelli ([email protected])
# Michele Cancilla ([email protected])
# Laura Canalini ([email protected])
# Stefano Allegretti ([email protected])
# All rights reserved.
cmake_minimum_required (VERSION 3.13)
#cmake_policy(SET CMP0091 NEW) # must be set in order to use CMAKE_MSVC_RUNTIME_LIBRARY
project (ecvl CXX)
include(CheckCXXCompilerFlag)
include(GNUInstallDirs)
# Add Find*.cmake in Modules dir
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
set_property(GLOBAL PROPERTY PREDEFINED_TARGETS_FOLDER "")
set(CMAKE_POSITION_INDEPENDENT_CODE ON) # To always generate position independent code
set(CMAKE_VERBOSE_MAKEFILE ON)
if (WIN32)
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
#--------------------------------------------------------------------------------------------------------
# BEGIN: Install(first step): must be at the beginning otherwise in case of any failure (i.e. OpenCV not found) won't work
#--------------------------------------------------------------------------------------------------------
# Set default install directories
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
if (WIN32)
set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/install CACHE PATH "Installation Directory" FORCE)
else()
set(CMAKE_INSTALL_PREFIX "/usr/local" CACHE PATH "Installation Directory" FORCE)
endif()
endif()
if(CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
SET(ECVL_CONFIG_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/cmake/ecvl)
else()
SET(ECVL_CONFIG_INSTALL_PATH ${CMAKE_INSTALL_PREFIX})
endif()
#--------------------------------------------------------------------------------------------------------
# END: Install (first step)
#--------------------------------------------------------------------------------------------------------
# Set build type (RELEASE/DEBUG)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Release)
endif()
#--------------------------------------------------------------------------------------------------------
# BEGIN: Check for c++17 support
#--------------------------------------------------------------------------------------------------------
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang")
check_cxx_compiler_flag("-std=c++17" COMPILER_SUPPORTS_CXX17)
elseif(MSVC)
check_cxx_compiler_flag("/std:c++17" COMPILER_SUPPORTS_CXX17)
else()
# Unrecognized compiler
set(COMPILER_SUPPORTS_CXX17 ON)
endif()
if(NOT COMPILER_SUPPORTS_CXX17)
message(FATAL_ERROR "The compiler ${CMAKE_CXX_COMPILER} has no C++17 support. Please use a different C++ compiler.")
endif()
set(CMAKE_CXX_EXTENSIONS OFF)
#--------------------------------------------------------------------------------------------------------
# END: Check for c++17 support
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: Check for CUDA support
#--------------------------------------------------------------------------------------------------------
set(ECVL_GPU_AVAILABLE OFF) # ON if GPU support is chosen AND actually available
option(ECVL_GPU "Build for GPU hardware (requires the NVIDIA CUDA toolkit)" OFF)
if(ECVL_GPU)
if(${CMAKE_VERSION} VERSION_LESS "3.17.0")
message(WARNING "Build for GPU hardware is only supported with CMake 3.17 or later.")
else()
include(CheckLanguage)
check_language(CUDA)
if(CMAKE_CUDA_COMPILER)
enable_language(CUDA)
find_package(CUDAToolkit)
if(CUDAToolkit_FOUND)
set(ECVL_GPU_AVAILABLE ON)
add_compile_definitions(ECVL_GPU)
else()
message(WARNING "The CUDA toolkit was not found, GPU support has been disabled.")
endif()
else()
message(WARNING "No CUDA compiler was found, GPU support has been disabled.")
endif()
endif()
endif()
#--------------------------------------------------------------------------------------------------------
# END: Check for CUDA support
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: static/dynamic runtime
#--------------------------------------------------------------------------------------------------------
set(ECVL_SHARED OFF CACHE BOOL "Whether to build static or dynamic libraries")
set(ecvl-type STATIC)
if (ECVL_SHARED)
set(ecvl-type SHARED)
endif()
if(MSVC)
add_compile_definitions(_CRT_SECURE_NO_WARNINGS) # Eliminate deprecation warnings less secure functions
# https://devblogs.microsoft.com/cppblog/recommendations-to-speed-c-builds-in-visual-studio
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:/MP>)
add_link_options($<$<CONFIG:DEBUG>:/debug:fastlink>)
# The following part should be made like this starting from CMake 3.15. It also requires policy CMP0091 set to NEW.
# if(ECVL_SHARED)
# set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>DLL")
# else()
# set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
# endif()
if(ECVL_SHARED)
message(STATUS "Setting dynamic runtime for MSVC")
foreach(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "/MT" "/MD" ${flag_var} "${${flag_var}}")
endforeach(flag_var)
if(ECVL_GPU_AVAILABLE)
foreach(flag_var CMAKE_CUDA_FLAGS_DEBUG CMAKE_CUDA_FLAGS_RELEASE CMAKE_CUDA_FLAGS_MINSIZEREL CMAKE_CUDA_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "-MT" "-MD" ${flag_var} "${${flag_var}}")
endforeach(flag_var)
endif()
else()
message(STATUS "Setting static runtime for MSVC")
foreach(flag_var CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endforeach(flag_var)
if(ECVL_GPU_AVAILABLE)
foreach(flag_var CMAKE_CUDA_FLAGS_DEBUG CMAKE_CUDA_FLAGS_RELEASE CMAKE_CUDA_FLAGS_MINSIZEREL CMAKE_CUDA_FLAGS_RELWITHDEBINFO)
string(REGEX REPLACE "-MD" "-MT" ${flag_var} "${${flag_var}}")
endforeach(flag_var)
endif()
endif()
endif()
#--------------------------------------------------------------------------------------------------------
# END: static/dynamic runtime
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: ECVL_CORE (the main target)
#--------------------------------------------------------------------------------------------------------
set(ECVL_BUILD_CORE ON CACHE BOOL "Whether to build ECVL_CORE or not" FORCE)
set(ECVL_TESTS ON CACHE BOOL "Whether to build ECVL tests or not")
if(ECVL_TESTS)
add_executable(ECVL_TESTS "") # it must be defined before ECVL_CORE
endif()
add_library(ECVL_CORE ${ecvl-type})
add_subdirectory("modules/core")
target_include_directories(ECVL_CORE PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/modules/core/include>
$<INSTALL_INTERFACE:include>
)
set_target_properties(ECVL_CORE PROPERTIES FOLDER "Modules")
set(ECVL_MODULES ECVL_CORE)
set(ECVL_MODULES_DIRS core)
if(ECVL_GPU_AVAILABLE)
if(ECVL_SHARED)
target_link_libraries(ECVL_CORE PUBLIC CUDA::cudart)
else()
target_link_libraries(ECVL_CORE PUBLIC CUDA::cudart_static)
endif()
# Enable cuda14 features
target_compile_features(ECVL_CORE PUBLIC cuda_std_14)
set_target_properties(ECVL_CORE PROPERTIES
CUDA_SEPARABLE_COMPILATION ON
CUDA_RESOLVE_DEVICE_SYMBOLS ON
)
endif()
# Enable c++17 features
target_compile_features(ECVL_CORE PUBLIC cxx_std_17)
# Enable link of stdc++fs library
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" AND NOT APPLE)
target_link_libraries(ECVL_CORE PUBLIC stdc++fs)
endif()
#--------------------------------------------------------------------------------------------------------
# END: ECVL_CORE (the main target)
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: OpenCV
#--------------------------------------------------------------------------------------------------------
set(OpenCV_REQUIRED_PACKAGES "core;imgcodecs;imgproc;photo" CACHE STRING "OpenCV required packages" FORCE)
find_package(OpenCV REQUIRED ${OpenCV_REQUIRED_PACKAGES})
if(${OpenCV_FOUND})
# message(WARNING ${OpenCV_FOUND})
if(${OpenCV_VERSION} GREATER_EQUAL 4)
# message(WARNING ${OpenCV_VERSION})
set(OpenCV_REQUIRED_PACKAGES "core;imgcodecs;imgproc;photo;calib3d" CACHE STRING "OpenCV required packages" FORCE)
find_package(OpenCV REQUIRED ${OpenCV_REQUIRED_PACKAGES})
endif()
endif()
target_include_directories(ECVL_CORE PUBLIC ${OpenCV_INCLUDE_DIRS})
target_link_libraries(ECVL_CORE PUBLIC ${OpenCV_LIBS})
message(STATUS "OpenCV version: ${OpenCV_VERSION}")
target_compile_definitions(ECVL_CORE PRIVATE OpenCV_VERSION_MAJOR=${OpenCV_VERSION_MAJOR})
#--------------------------------------------------------------------------------------------------------
# END: OpenCV
#--------------------------------------------------------------------------------------------------------
# OpenMP
find_package(OpenMP)
if (OpenMP_FOUND)
target_link_libraries(ECVL_CORE PUBLIC OpenMP::OpenMP_CXX)
if (${OpenMP_CXX_VERSION_MAJOR})
set(OpenMP_VERSION_MAJOR ${OpenMP_CXX_VERSION_MAJOR} CACHE INTERNAL "" FORCE)
endif()
target_compile_definitions(ECVL_CORE PUBLIC OpenMP_VERSION_MAJOR=${OpenMP_VERSION_MAJOR})
set(OMP_CANCELLATION true) # https://www.openmp.org/spec-html/5.0/openmpse59.html
endif()
#--------------------------------------------------------------------------------------------------------
# BEGIN: 3rdparty
#--------------------------------------------------------------------------------------------------------
set(ECVL_BUILD_DEPS ON CACHE BOOL "Whether to build 3rdparty dependencies or looks for them on the system")
set(ECVL_WITH_DICOM OFF CACHE BOOL "Whether to build DICOM support or not")
set(ECVL_WITH_OPENGL OFF CACHE BOOL "Whether to build OPENGL support or not (requires ECVL_GUI)")
set(ECVL_DATASET OFF CACHE BOOL "Whether to build yaml support or not")
set(ECVL_WITH_OPENSLIDE OFF CACHE BOOL "Whether to build OpenSlide support or not")
find_package(Git QUIET)
#--------------------------------------------------------------------------------------------------------
# END: 3rdparty
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: ECVL optional libraries
#--------------------------------------------------------------------------------------------------------
set(ECVL_BUILD_EXAMPLES OFF CACHE BOOL "Whether to build ECVL examples or not")
set(ECVL_BUILD_GUI OFF CACHE BOOL "Whether to build ECVL_GUI or not (requires wxWidgets)")
set(ECVL_BUILD_EDDL ON CACHE BOOL "Whether to build ECVL_EDDL or not (requires eddl)")
set(ECVL_BUILD_GUI_AVAILABLE OFF)
if(ECVL_BUILD_GUI)
if(ECVL_BUILD_CORE)
find_package(wxWidgets COMPONENTS gl core base OPTIONAL_COMPONENTS net)
if(wxWidgets_FOUND)
set(ECVL_BUILD_GUI_AVAILABLE ON)
include(${wxWidgets_USE_FILE})
add_library(ECVL_GUI ${ecvl-type} "")
add_subdirectory("modules/gui")
include_directories("modules/gui/include")
message(STATUS "wxWidgets include directories: ${wxWidgets_INCLUDE_DIRS}")
# Remove these global defines, add to GUI only
remove_definitions(-DUNICODE -D_UNICODE)
target_compile_definitions(ECVL_GUI PRIVATE -DUNICODE -D_UNICODE)
target_link_libraries(ECVL_GUI PUBLIC ECVL_CORE ${wxWidgets_LIBRARIES})
target_include_directories(ECVL_GUI PUBLIC ${wxWidgets_INCLUDE_DIRS})
set_target_properties(ECVL_GUI PROPERTIES FOLDER "Modules")
list(APPEND ECVL_MODULES "ECVL_GUI")
list(APPEND ECVL_MODULES_DIRS "gui")
else()
message(WARNING "Could NOT find wxWidgets")
endif()
else()
set(ECVL_BUILD_GUI OFF CACHE BOOL "Whether to build ECVL_GUI or not (requires wxWidgets)" FORCE)
message(STATUS "ECVL_GUI disabled: unmet dependency ECVL_CORE")
endif()
endif()
macro(F_BUILD_DATASET)
add_library(DATASET ${ecvl-type} "modules/dataset/dataset.yaml")
add_subdirectory("modules/dataset")
include_directories("modules/dataset/include")
target_link_libraries(DATASET ECVL_CORE)
set_target_properties(DATASET PROPERTIES FOLDER "Modules")
list(APPEND ECVL_MODULES "DATASET")
list(APPEND ECVL_MODULES_DIRS "dataset")
endmacro()
set(ECVL_BUILD_EDDL_AVAILABLE OFF)
if(ECVL_BUILD_EDDL)
if(ECVL_BUILD_CORE)
find_package(eddl NAMES eddl EDDL)
if(eddl_FOUND)
set(ECVL_BUILD_EDDL_AVAILABLE ON)
set(ECVL_DATASET ON CACHE BOOL "Whether to build ECVL_DATASET or not" FORCE)
F_BUILD_DATASET()
add_library(ECVL_EDDL ${ecvl-type} "")
add_subdirectory("modules/eddl")
include_directories("modules/eddl/include")
target_link_libraries(ECVL_EDDL DATASET EDDL::eddl)
set_target_properties(ECVL_EDDL PROPERTIES FOLDER "Modules")
list(APPEND ECVL_MODULES "ECVL_EDDL")
list(APPEND ECVL_MODULES_DIRS "eddl")
endif()
else()
set(ECVL_BUILD_EDDL OFF CACHE BOOL "Whether to build ECVL_EDDL or not (requires eddl)" FORCE)
message(STATUS "ECVL_EDDL disabled: unmet dependency ECVL_CORE")
endif()
endif()
if(ECVL_DATASET AND NOT eddl_FOUND)
if(ECVL_BUILD_CORE)
F_BUILD_DATASET()
else()
set(ECVL_DATASET OFF CACHE BOOL "Whether to build ECVL_DATASET or not" FORCE)
message(STATUS "ECVL_DATASET disabled: unmet dependency ECVL_CORE")
endif()
endif()
foreach(MODULE ${ECVL_MODULES})
string(TOLOWER ${MODULE} LOWER_MODULE)
set_target_properties(${MODULE} PROPERTIES
OUTPUT_NAME "${LOWER_MODULE}"
DEBUG_POSTFIX d
)
endforeach()
#--------------------------------------------------------------------------------------------------------
# END: ECVL optional libraries
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: 3rdparty
#--------------------------------------------------------------------------------------------------------
set(CMAKE_FOLDER 3rdparty)
add_subdirectory(3rdparty)
set(CMAKE_FOLDER "")
if(ECVL_WITH_DICOM)
target_compile_definitions(ECVL_CORE PUBLIC ECVL_WITH_DICOM)
endif()
if(ECVL_WITH_OPENGL)
target_compile_definitions(ECVL_GUI PUBLIC ECVL_WITH_OPENGL)
endif()
if(ECVL_WITH_OPENSLIDE)
find_path(OPENSLIDE_INCLUDE_DIRECTORIES openslide.h PATH_SUFFIXES openslide DOC "Path to directory containing openslide.h")
find_library(OPENSLIDE_LIBRARIES openslide DOC "Path to libopenslide.lib")
if(OPENSLIDE_LIBRARIES AND OPENSLIDE_INCLUDE_DIRECTORIES)
target_include_directories(ECVL_CORE PUBLIC ${OPENSLIDE_INCLUDE_DIRECTORIES})
target_link_libraries(ECVL_CORE PUBLIC ${OPENSLIDE_LIBRARIES})
target_compile_definitions(ECVL_CORE PUBLIC ECVL_WITH_OPENSLIDE)
target_sources(ECVL_CORE PRIVATE "../modules/core/include/ecvl/core/support_openslide.h" "../modules/core/src/support_openslide.cpp")
else()
message(WARNING "Could NOT find OpenSlide")
endif()
endif()
#--------------------------------------------------------------------------------------------------------
# END: 3rdparty
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: Examples
#--------------------------------------------------------------------------------------------------------
if (ECVL_BUILD_EXAMPLES)
include(examples/CMakeLists.txt)
endif()
#--------------------------------------------------------------------------------------------------------
# END: Examples
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: ECVL tests
#--------------------------------------------------------------------------------------------------------
if(ECVL_TESTS)
include(GoogleTest)
enable_testing()
target_link_libraries(ECVL_TESTS ${ECVL_MODULES} gtest gtest_main gmock)
if(MSVC)
target_compile_options(ECVL_TESTS PUBLIC "-bigobj")
endif()
if (ECVL_BUILD_EXAMPLES)
target_compile_definitions(ECVL_TESTS PUBLIC ECVL_WITH_EXAMPLES)
endif()
gtest_discover_tests(ECVL_TESTS)
endif()
#--------------------------------------------------------------------------------------------------------
# END: ECVL tests
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: Install
#--------------------------------------------------------------------------------------------------------
install(TARGETS ${ECVL_MODULES}
EXPORT ecvlTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
install(EXPORT ecvlTargets DESTINATION ${ECVL_CONFIG_INSTALL_PATH})
foreach(module_name ${ECVL_MODULES_DIRS})
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/modules/${module_name}/include
DESTINATION "."
FILES_MATCHING PATTERN "*.h")
endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/cmake/ecvlConfig.cmake.in ${CMAKE_BINARY_DIR}/cmake/ecvlConfig.cmake @ONLY)
install(FILES ${CMAKE_BINARY_DIR}/cmake/ecvlConfig.cmake
DESTINATION ${ECVL_CONFIG_INSTALL_PATH})
#--------------------------------------------------------------------------------------------------------
# END: Install
#--------------------------------------------------------------------------------------------------------
#--------------------------------------------------------------------------------------------------------
# BEGIN: Summary
#--------------------------------------------------------------------------------------------------------
message(STATUS "--------------------------------------")
message(STATUS "Compiler: ${CMAKE_CXX_COMPILER_ID} ${CMAKE_CXX_COMPILER_VERSION}")
message(STATUS "Build type: ${CMAKE_BUILD_TYPE} - ${ecvl-type}")
message(STATUS "ECVL modules to build: ${ECVL_MODULES}")
message(STATUS "Install prefix: ${CMAKE_INSTALL_PREFIX}")
message("")
message(STATUS "C++ flags: ${CMAKE_CXX_FLAGS}")
message(STATUS "C++ Release flags: ${CMAKE_CXX_FLAGS_RELEASE}")
message(STATUS "C++ Debug flags: ${CMAKE_CXX_FLAGS_DEBUG}")
if(ECVL_GPU_AVAILABLE)
message("")
message(STATUS "CUDA flags: ${CMAKE_CUDA_FLAGS}")
message(STATUS "CUDA Release flags: ${CMAKE_CUDA_FLAGS_RELEASE}")
message(STATUS "CUDA Debug flags: ${CMAKE_CUDA_FLAGS_DEBUG}")
endif()
# message(STATUS "ECVL MODULES DIRS ${ECVL_MODULES_DIRS}")
message(STATUS "--------------------------------------")
#--------------------------------------------------------------------------------------------------------
# END: Summary
#--------------------------------------------------------------------------------------------------------