From 98b33e0d15ef00349c3bdfb7b13ff3069f38ac21 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Thu, 13 Feb 2020 15:21:35 +0000 Subject: [PATCH 1/5] CMake install instructions --- CMakeLists.txt | 31 +++++++++++++++++++++++++++++-- 1 file changed, 29 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f144c9a..4d14ff6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 2.8) project(gSLICr) - + +set(CMAKE_CXX_STANDARD 11) + IF(MSVC_IDE) set(OpenCV_STATIC OFF) add_definitions(-D_CRT_SECURE_NO_WARNINGS) @@ -35,7 +37,7 @@ gSLICr_Lib/gSLICr_defines.h gSLICr_Lib/gSLICr.h ) -list(APPEND "-std=c++11 -ftree-vectorize") +list(APPEND "-ftree-vectorize") SOURCE_GROUP(engines FILES ${GSLICR_LIB}) cuda_add_library(gSLICr_lib @@ -46,3 +48,28 @@ target_link_libraries(gSLICr_lib ${CUDA_LIBRARY}) add_executable(demo demo.cpp) target_link_libraries(demo gSLICr_lib ${OpenCV_LIBS}) + +include(GNUInstallDirs) + +# install library +install(TARGETS gSLICr_lib EXPORT ${PROJECT_NAME} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +# install header file hierarchy +file(GLOB_RECURSE HEADER_FILES RELATIVE ${CMAKE_SOURCE_DIR} *.h) +foreach(HEADER ${HEADER_FILES}) + string(REGEX MATCH "(.*)[/\\]" DIR ${HEADER}) + install(FILES ${HEADER} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PROJECT_NAME}/${DIR}) +endforeach() + +target_include_directories(gSLICr_lib PUBLIC + "$" + "$/${CMAKE_INSTALL_INCLUDEDIR}>/${PROJECT_NAME}/gSLICr_Lib/") + +# export library +install(EXPORT ${PROJECT_NAME} + DESTINATION share/${PROJECT_NAME}/cmake + FILE ${PROJECT_NAME}Config.cmake +) From e2556ebd588b6f0e797596fb2dec074d10e0655f Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Tue, 21 Jul 2020 11:16:06 +0100 Subject: [PATCH 2/5] use default CUDA compute capability --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4d14ff6..52667c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,8 +42,7 @@ SOURCE_GROUP(engines FILES ${GSLICR_LIB}) cuda_add_library(gSLICr_lib ${GSLICR_LIB} - NVTimer.h - OPTIONS -gencode arch=compute_30,code=compute_30) + NVTimer.h) target_link_libraries(gSLICr_lib ${CUDA_LIBRARY}) add_executable(demo demo.cpp) From 1a41e42faba05c922ec2493d31ff389f10ba44d4 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Tue, 30 Mar 2021 12:13:08 +0100 Subject: [PATCH 3/5] package.xml metadata --- package.xml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 package.xml diff --git a/package.xml b/package.xml new file mode 100644 index 0000000..e4f1302 --- /dev/null +++ b/package.xml @@ -0,0 +1,25 @@ + + + gslicr + 0.0.0 + This is the software bundle "gSLICr", a library for real-time superpixel segmentation written in C++ and CUDA. + + Christian Rauch + + TODO + + https://github.com/carlren/gSLICr + https://arxiv.org/abs/1509.04232 + + Carl Yuheng Ren + Victor Adrian Prisacariu + Ian D Reid + + cmake + + libopencv-dev + + + cmake + + From f9de3f12742b654345c2098c10b8c0b65cf93d47 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Tue, 24 May 2022 11:58:44 +0100 Subject: [PATCH 4/5] increase minimum CMake version to 3.10 to inhibit deprecation warning --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52667c8..7e2fe16 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.10) project(gSLICr) set(CMAKE_CXX_STANDARD 11) From 12d3745d866a5cc49b0325dbacd49cc98c5229d5 Mon Sep 17 00:00:00 2001 From: Christian Rauch Date: Tue, 2 Jan 2024 23:46:11 +0100 Subject: [PATCH 5/5] compile CUDA targets via LANGUAGES definition --- CMakeLists.txt | 16 ++++++++-------- ORUtils/CMakeLists.txt | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7e2fe16..6959c1e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,5 @@ cmake_minimum_required(VERSION 3.10) -project(gSLICr) - -set(CMAKE_CXX_STANDARD 11) +project(gSLICr LANGUAGES CXX CUDA) IF(MSVC_IDE) set(OpenCV_STATIC OFF) @@ -16,10 +14,9 @@ if(APPLE) set(CUDA_HOST_COMPILER /usr/bin/clang) endif(APPLE) -find_package(CUDA REQUIRED) find_package(OpenCV REQUIRED) -include_directories(${CUDA_INCLUDE_DIRS}) +include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) include_directories(${OpenCV_INCLUDE_DIRS}) add_subdirectory(ORUtils) @@ -40,10 +37,13 @@ gSLICr_Lib/gSLICr.h list(APPEND "-ftree-vectorize") SOURCE_GROUP(engines FILES ${GSLICR_LIB}) -cuda_add_library(gSLICr_lib - ${GSLICR_LIB} - NVTimer.h) +add_library(gSLICr_lib ${GSLICR_LIB} NVTimer.h) target_link_libraries(gSLICr_lib ${CUDA_LIBRARY}) +target_compile_features(gSLICr_lib PUBLIC cxx_std_11) +set_target_properties(gSLICr_lib + PROPERTIES CUDA_SEPARABLE_COMPILATION ON + POSITION_INDEPENDENT_CODE ON +) add_executable(demo demo.cpp) target_link_libraries(demo gSLICr_lib ${OpenCV_LIBS}) diff --git a/ORUtils/CMakeLists.txt b/ORUtils/CMakeLists.txt index 3af6587..f5c44bf 100644 --- a/ORUtils/CMakeLists.txt +++ b/ORUtils/CMakeLists.txt @@ -38,7 +38,7 @@ SOURCE_GROUP("" FILES ${ORUTILS_HEADERS}) add_library(ORUtils ${ORUTILS_OBJECTS}) IF(WITH_CUDA) -# include_directories(${CUDA_INCLUDE_DIRS}) +# include_directories(${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}) # cuda_add_library(ITMLib # ${ITMLIB_CPU_OBJECTS} # ${ITMLIB_CUDA_OBJECTS}