@@ -2,21 +2,22 @@ cmake_minimum_required(VERSION 3.11.0 FATAL_ERROR)
22
33# Suppress developer warnings for the entire workspace.
44set (CMAKE_SUPPRESS_DEVELOPER_WARNINGS TRUE CACHE BOOL "Suppress developer warnings" FORCE)
5- # Set CMP0144 to NEW to ensure find_package uses upper-case <PACKAGENAME>_ROOT variables.
65cmake_policy (SET CMP0144 NEW)
76
87project (multibeam_sonar)
98
9+ set (CUDA_ARCHITECTURE "60" CACHE STRING "Target CUDA SM version" )
10+
1011find_package (ament_cmake REQUIRED)
1112find_package (CUDAToolkit QUIET )
1213
13- if (CUDAToolkit_FOUND)
14+ if (BUILD_WITH_CUDA AND CUDAToolkit_FOUND)
15+
1416 enable_language (CUDA)
1517 find_package (CUDA REQUIRED)
1618 message (STATUS "CUDA found, enabling CUDA support." )
1719 include_directories (${CUDA_INCLUDE_DIRS} )
18- set (CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -arch=sm_60" )
19-
20+ set (CUDA_NVCC_FLAGS "${CUDA_NVCC_FLAGS} -arch=sm_${CUDA_ARCHITECTURE} " )
2021 find_package (gz-cmake3 REQUIRED)
2122 find_package (gz-sim8 REQUIRED)
2223 find_package (gz-sensors8 REQUIRED)
@@ -36,7 +37,6 @@ if(CUDAToolkit_FOUND)
3637 link_directories (${PCL_LIBRARY_DIRS} )
3738 add_definitions (${PCL_DEFINITIONS} )
3839
39- # Set version variables
4040 set (GZ_MSGS_VER ${gz-msgs10_VERSION_MAJOR})
4141 set (GZ_RENDERING_VER ${gz-rendering8_VERSION_MAJOR})
4242 set (GZ_SENSORS_VER ${gz-sensors8_VERSION_MAJOR})
@@ -62,7 +62,9 @@ if(CUDAToolkit_FOUND)
6262 )
6363
6464 set_target_properties (${PROJECT_NAME}
65- PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
65+ PROPERTIES
66+ CUDA_SEPARABLE_COMPILATION ON
67+ )
6668
6769 target_include_directories (${PROJECT_NAME}
6870 PUBLIC
@@ -75,12 +77,17 @@ if(CUDAToolkit_FOUND)
7577 )
7678
7779 find_library (CUBLAS_LIB cublas
78- HINTS ${CUDAToolkit_LIBRARY_DIR} /usr/local/cuda/lib64 /usr/lib/x86_64-linux-gnu /usr/lib)
80+ HINTS ${CUDAToolkit_LIBRARY_DIR} /usr/local/cuda/lib64 /usr/lib/x86_64-linux-gnu /usr/lib)
7981 if (NOT CUBLAS_LIB)
8082 message (FATAL_ERROR "cuBLAS not found" )
8183 endif ()
8284
83- target_link_libraries (${PROJECT_NAME} ${PCL_LIBRARIES} ${CUDA_LIBRARIES} ${CUDA_CUFFT_LIBRARIES} ${CUBLAS_LIB} )
85+ target_link_libraries (${PROJECT_NAME}
86+ ${PCL_LIBRARIES}
87+ ${CUDA_LIBRARIES}
88+ ${CUDA_CUFFT_LIBRARIES}
89+ ${CUBLAS_LIB}
90+ )
8491
8592 install (TARGETS ${PROJECT_NAME}
8693 DESTINATION lib/${PROJECT_NAME}
@@ -103,14 +110,12 @@ if(CUDAToolkit_FOUND)
103110 cv_bridge
104111 )
105112
106-
107- # Environment hooks
108113 ament_environment_hooks(
109114 "${CMAKE_CURRENT_SOURCE_DIR} /hooks/${PROJECT_NAME} .dsv.in"
110115 )
111116
112117else ()
113- message (STATUS "CUDA Toolkit not found: Skipping CUDA-specific targets" )
118+ message (STATUS "CUDA Toolkit not found or disabled : Skipping CUDA-specific targets" )
114119endif ()
115120
116121ament_package()
0 commit comments