From 023a7adf789400eb5d61ac56165ed27c864f26e8 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Wed, 3 Jan 2024 00:31:41 +0100 Subject: [PATCH] CUDA support via LANGUAGES definitions --- CMakeLists.txt | 7 ++++++- Core/CMakeLists.txt | 13 ++++++------- GUI/CMakeLists.txt | 9 ++++----- 3 files changed, 16 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0e9a142..c81421a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,12 @@ project(multimotionfusion) set(CMAKE_CXX_STANDARD 17) # Warnings / Errors -add_compile_options(-Wall -Werror -Wno-write-strings -Wno-deprecated-declarations) +add_compile_options( + $<$:-Wall> + $<$:-Werror> + $<$:-Wno-write-strings> + $<$:-Wno-deprecated-declarations> +) # Don't follow symlinks when FILE GLOB_RECURSE (and don't warn) cmake_policy(SET CMP0009 NEW) diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index bb06f11..aff44b4 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.0.2) -project(multimotionfusion) +project(multimotionfusion LANGUAGES CXX CUDA) message(STATUS "Evaluating Core/CMAKE") @@ -9,7 +9,6 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}") include(GNUInstallDirs) ## External packages -find_package(CUDA REQUIRED) find_package(SuiteSparse REQUIRED) find_package(OpenCV REQUIRED) find_package(OpenMP) @@ -65,7 +64,7 @@ message(STATUS "MULTIMOTIONFUSION_SHADER_DIR: ${MULTIMOTIONFUSION_SHADER_DIR}") ## Includes include_directories(${Pangolin_INCLUDE_DIRS}) -include_directories(${CUDA_INCLUDE_DIRS}) +include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) include_directories(${SUITESPARSE_INCLUDE_DIRS}) include_directories(${PCL_INCLUDE_DIRS}) include_directories(${OpenCV_INCLUDE_DIRS}) @@ -98,8 +97,6 @@ endif(CMAKE_BUILD_TYPE MATCHES Debug) # disable to use standard 'glTransformFeedbackVaryings' in palce of 'glTransformFeedbackVaryingsNV' add_definitions(-DNVIDIA_VARYINGS) -CUDA_COMPILE(cuda_objs ${cuda}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3 -DSHADER_DIR=${MULTIMOTIONFUSION_SHADER_DIR}") if(CMAKE_BUILD_TYPE MATCHES Debug) @@ -117,7 +114,6 @@ add_library(${PROJECT_NAME} SHARED ${utils_srcs} ${shader_srcs} ${cuda} - ${cuda_objs} ${containers} ${segmentation} ) @@ -126,7 +122,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR} ${Pangolin_INCLUDE_DIRS} - ${CUDA_INCLUDE_DIRS} + ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES} ${OPENNI2_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS} ${BOOST_INCLUDE_DIRS} @@ -142,6 +138,9 @@ target_link_libraries(${PROJECT_NAME} super_point_inference ) +target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_11) +set_target_properties(${PROJECT_NAME} PROPERTIES CUDA_SEPARABLE_COMPILATION ON) + add_library(ransac STATIC "Utils/RigidRANSAC.cpp") target_link_libraries(ransac Eigen3::Eigen) diff --git a/GUI/CMakeLists.txt b/GUI/CMakeLists.txt index 3f4c7cd..d83793e 100644 --- a/GUI/CMakeLists.txt +++ b/GUI/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -project(multimotionfusion-gui) +project(multimotionfusion-gui LANGUAGES CXX CUDA) set(CMAKE_CXX_STANDARD 17) @@ -23,7 +23,6 @@ option(ROSNODE "read images live as ROS node" ${HASROS}) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}") find_package(ZLIB REQUIRED) -find_package(CUDA REQUIRED) find_package(OpenNI2 REQUIRED) find_package(OpenCV REQUIRED ) find_package(Boost REQUIRED filesystem) @@ -57,7 +56,7 @@ if(ROSBAG OR ROSNODE) endif() include_directories(${ZLIB_INCLUDE_DIR}) -include_directories(${CUDA_INCLUDE_DIRS}) +include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Core) include_directories(${OPENNI2_INCLUDE_DIR}) include_directories(${Pangolin_INCLUDE_DIRS}) @@ -66,7 +65,7 @@ include_directories(${OpenCV_INCLUDE_DIRS}) message(STATUS "Include-directories: ") message(STATUS "ZLIB_INCLUDE_DIR: ${ZLIB_INCLUDE_DIR}") -message(STATUS "CUDA_INCLUDE_DIRS: ${CUDA_INCLUDE_DIRS}") +message(STATUS "CUDA_INCLUDE_DIRS: ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}") message(STATUS "OPENNI2_INCLUDE_DIR: ${OPENNI2_INCLUDE_DIR}") message(STATUS "CMAKE_CURRENT_SOURCE_DIR/../Core: ${${CMAKE_CURRENT_SOURCE_DIR}/../Core}") @@ -112,7 +111,7 @@ target_include_directories(MultiMotionFusionTools PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${ZLIB_INCLUDE_DIR} ${Pangolin_INCLUDE_DIRS} - ${CUDA_INCLUDE_DIRS} + ${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES} ${OPENNI2_INCLUDE_DIR} ${OpenCV_INCLUDE_DIRS} ${BOOST_INCLUDE_DIRS}