From 2c614d362241c31883b09173ae1955384e951d2c Mon Sep 17 00:00:00 2001 From: Nicolas Pope <nwpope@utu.fi> Date: Sun, 15 Nov 2020 10:46:57 +0200 Subject: [PATCH] Rework cmake install process --- SDK/C/CMakeLists.txt | 6 +++--- SDK/CPP/CMakeLists.txt | 13 +++++++++++-- SDK/CPP/public/CMakeLists.txt | 3 +++ applications/gui2/CMakeLists.txt | 10 ++++++---- applications/reconstruct2/CMakeLists.txt | 8 +++++--- applications/vision/CMakeLists.txt | 12 ++++++------ components/control/cpp/CMakeLists.txt | 10 +++++----- components/net/cpp/CMakeLists.txt | 10 +++++----- 8 files changed, 44 insertions(+), 28 deletions(-) diff --git a/SDK/C/CMakeLists.txt b/SDK/C/CMakeLists.txt index e4f0fadcb..6f816eeae 100644 --- a/SDK/C/CMakeLists.txt +++ b/SDK/C/CMakeLists.txt @@ -19,9 +19,9 @@ endif() target_link_libraries(ftl-dev ftlcommon ftlcodecs ftlrgbd ftlstreams Threads::Threads ${OpenCV_LIBS} ftlnet) -install(TARGETS ftl-dev - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +#install(TARGETS ftl-dev +# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +# PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_subdirectory(examples/image_write) add_subdirectory(examples/video_write) diff --git a/SDK/CPP/CMakeLists.txt b/SDK/CPP/CMakeLists.txt index 123671c2b..385497500 100644 --- a/SDK/CPP/CMakeLists.txt +++ b/SDK/CPP/CMakeLists.txt @@ -37,15 +37,24 @@ target_link_libraries(voltu ftlcommon ftldata ftlctrl ftlrgbd ftlstreams ftlrend set(SDK_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/sdk") +if (WIN32) + install(TARGETS voltu RUNTIME COMPONENT runtime) +else() + install(TARGETS voltu LIBRARY COMPONENT runtime) +endif() + +set(voltu_sdk_DESTDIR ${CMAKE_CURRENT_BINARY_DIR}/lib/voltu_sdk_install) + ExternalProject_Add( voltu_sdk SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/public" BINARY_DIR ${SDK_BINARY_DIR} - INSTALL_COMMAND "" BUILD_ALWAYS true - CMAKE_ARGS -DOpenCV_DIR=${OpenCV_DIR} -DWITH_PYTHON=True + CMAKE_ARGS -DOpenCV_DIR=${OpenCV_DIR} -DWITH_PYTHON=True -DCMAKE_INSTALL_PREFIX=${voltu_sdk_DESTDIR} ) +install(DIRECTORY ${voltu_sdk_DESTDIR}/ DESTINATION ${CMAKE_INSTALL_PREFIX}) + if (BUILD_TESTS) add_subdirectory(tests) endif() diff --git a/SDK/CPP/public/CMakeLists.txt b/SDK/CPP/public/CMakeLists.txt index 94b928b5f..25770980f 100644 --- a/SDK/CPP/public/CMakeLists.txt +++ b/SDK/CPP/public/CMakeLists.txt @@ -52,6 +52,9 @@ target_include_directories(voltu_sdk PUBLIC include) target_link_libraries(voltu_sdk ${OS_LIBS} Threads::Threads ${OPTIONAL_DEPENDENCIES} Eigen3::Eigen) +install(TARGETS voltu_sdk ARCHIVE) +install(DIRECTORY include/voltu DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + add_executable(voltu_basic_test samples/basic_test/main.cpp ) diff --git a/applications/gui2/CMakeLists.txt b/applications/gui2/CMakeLists.txt index 783aba56a..4993b84f2 100644 --- a/applications/gui2/CMakeLists.txt +++ b/applications/gui2/CMakeLists.txt @@ -65,9 +65,9 @@ add_definitions(${NANOGUI_EXTRA_DEFS}) # On top of adding the path to nanogui/include, you may need extras include_directories(${NANOGUI_EXTRA_INCS}) -add_executable(ftl-gui2 ${GUI2SRC}) +add_executable(voltu-ui ${GUI2SRC}) -target_include_directories(ftl-gui2 PUBLIC +target_include_directories(voltu-ui PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/ext/nanogui/include> $<INSTALL_INTERFACE:include> @@ -78,6 +78,8 @@ target_include_directories(ftl-gui2 PUBLIC #endif() #target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include) -target_link_libraries(ftl-gui2 ftlcommon ftldata ftlctrl ftlrgbd ftlstreams ftlrender ftldisparity Threads::Threads ${OpenCV_LIBS} openvr ftlnet nanogui ${NANOGUI_EXTRA_LIBS} ceres nvidia-ml) +target_link_libraries(voltu-ui ftlcommon ftldata ftlctrl ftlrgbd ftlstreams ftlrender ftldisparity Threads::Threads ${OpenCV_LIBS} openvr ftlnet nanogui ${NANOGUI_EXTRA_LIBS} ceres nvidia-ml) -target_precompile_headers(ftl-gui2 REUSE_FROM ftldata) +target_precompile_headers(voltu-ui REUSE_FROM ftldata) + +install(TARGETS voltu-ui RUNTIME COMPONENT gui) diff --git a/applications/reconstruct2/CMakeLists.txt b/applications/reconstruct2/CMakeLists.txt index a001f2553..9eb5f208c 100644 --- a/applications/reconstruct2/CMakeLists.txt +++ b/applications/reconstruct2/CMakeLists.txt @@ -6,7 +6,7 @@ set(REPSRC src/main.cpp ) -add_executable(ftl-reconstruct2 ${REPSRC}) +add_executable(voltu-fusion ${REPSRC}) #target_include_directories(ftl-reconstruct PUBLIC # $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> @@ -14,8 +14,10 @@ add_executable(ftl-reconstruct2 ${REPSRC}) # PRIVATE src) if (CUDA_FOUND) -set_property(TARGET ftl-reconstruct2 PROPERTY CUDA_SEPARABLE_COMPILATION ON) +set_property(TARGET voltu-fusion PROPERTY CUDA_SEPARABLE_COMPILATION ON) endif() #target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include) -target_link_libraries(ftl-reconstruct2 ftlcommon ftlrgbd Threads::Threads ${OpenCV_LIBS} ftlctrl ftlnet ftlrender ftloperators ftlstreams ftlaudio) +target_link_libraries(voltu-fusion ftlcommon ftlrgbd Threads::Threads ${OpenCV_LIBS} ftlctrl ftlnet ftlrender ftloperators ftlstreams ftlaudio) + +install(TARGETS voltu-fusion RUNTIME COMPONENT reconstruct) diff --git a/applications/vision/CMakeLists.txt b/applications/vision/CMakeLists.txt index 9341fab23..bdd0a80ee 100644 --- a/applications/vision/CMakeLists.txt +++ b/applications/vision/CMakeLists.txt @@ -9,19 +9,19 @@ set(CVNODESRC #src/middlebury.cpp ) -add_executable(ftl-vision ${CVNODESRC}) -install(TARGETS ftl-vision DESTINATION bin COMPONENT vision) +add_executable(voltu-vision ${CVNODESRC}) +install(TARGETS voltu-vision RUNTIME COMPONENT vision) -target_include_directories(ftl-vision PUBLIC +target_include_directories(voltu-vision PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include> PRIVATE src) if (CUDA_FOUND) -set_property(TARGET ftl-vision PROPERTY CUDA_SEPARABLE_COMPILATION OFF) +set_property(TARGET voltu-vision PROPERTY CUDA_SEPARABLE_COMPILATION OFF) endif() #target_include_directories(cv-node PUBLIC ${PROJECT_SOURCE_DIR}/include) -target_link_libraries(ftl-vision ftlrgbd ftlcommon ftlstreams ftlctrl ${OpenCV_LIBS} ${CUDA_LIBRARIES} ftlnet ftlaudio) +target_link_libraries(voltu-vision ftlrgbd ftlcommon ftlstreams ftlctrl ${OpenCV_LIBS} ${CUDA_LIBRARIES} ftlnet ftlaudio) -target_precompile_headers(ftl-vision REUSE_FROM ftldata) +target_precompile_headers(voltu-vision REUSE_FROM ftldata) diff --git a/components/control/cpp/CMakeLists.txt b/components/control/cpp/CMakeLists.txt index 3f6d4a299..d50bdee98 100644 --- a/components/control/cpp/CMakeLists.txt +++ b/components/control/cpp/CMakeLists.txt @@ -8,10 +8,10 @@ target_include_directories(ftlctrl PUBLIC PRIVATE src) target_link_libraries(ftlctrl ftlcommon ftlnet Eigen3::Eigen) -install(TARGETS ftlctrl EXPORT ftlctrl-config - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +#install(TARGETS ftlctrl EXPORT ftlctrl-config +# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +#install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT development) #ADD_SUBDIRECTORY(test) diff --git a/components/net/cpp/CMakeLists.txt b/components/net/cpp/CMakeLists.txt index 04e89bdfe..896a7b64e 100644 --- a/components/net/cpp/CMakeLists.txt +++ b/components/net/cpp/CMakeLists.txt @@ -20,11 +20,11 @@ target_link_libraries(ftlnet ftlctrl ftlcommon Threads::Threads glog::glog ${UUI target_precompile_headers(ftlnet REUSE_FROM ftlcommon) -install(TARGETS ftlnet EXPORT ftlnet-config - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) -install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +#install(TARGETS ftlnet EXPORT ftlnet-config +# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +# RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) +#install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT development) if (BUILD_TESTS) -- GitLab