From 7ea3b3666364082295391381080b08710f684cb6 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 12:57:06 +0100 Subject: [PATCH 01/14] Add missing #include to thread_base.h --- sdk_core/src/base/thread_base.h | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk_core/src/base/thread_base.h b/sdk_core/src/base/thread_base.h index 35f7fbd..2ae2ee9 100644 --- a/sdk_core/src/base/thread_base.h +++ b/sdk_core/src/base/thread_base.h @@ -25,6 +25,7 @@ #ifndef LIVOX_THREAD_BASE_H_ #define LIVOX_THREAD_BASE_H_ #include +#include #include #include "noncopyable.h" -- 2.52.0 From 9ea7ca67de66764fb78a2ce454ace4f0f6e2bf9e Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:11:50 +0100 Subject: [PATCH 02/14] Remove build directory and update .gitignore --- .gitignore | 19 ++++++------------- build/notes.txt | 6 ------ 2 files changed, 6 insertions(+), 19 deletions(-) delete mode 100644 build/notes.txt diff --git a/.gitignore b/.gitignore index b3d7771..b9cdc00 100644 --- a/.gitignore +++ b/.gitignore @@ -1,14 +1,7 @@ +.cache/ +.vs/ +.vscode/ +/[Bb]uild -# ignore dir -#build/ -build/*.txt -build/Makefile -build/*.cmake -build/CMakeFiles -build/sdk_core -build/sample - -#whitelist -!build/notes.txt - - +compile_commands.json +CMakeUserPresets.json diff --git a/build/notes.txt b/build/notes.txt deleted file mode 100644 index a3eb7a4..0000000 --- a/build/notes.txt +++ /dev/null @@ -1,6 +0,0 @@ -// 2019/01/07 -The purpose of adding this file is to commit the build folder to git. - -// Must build the project in this folder,for example: -cmake .. // generate makefile,in the project root directory. -make // build the project. -- 2.52.0 From 0a07f736e019eb8b6103c2fed2ab5046e04cc459 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:13:01 +0100 Subject: [PATCH 03/14] Add alias livox_sdk::livox_sdk for library target --- sdk_core/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index 60037f6..8679e71 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -2,6 +2,7 @@ cmake_minimum_required(VERSION 3.0) set(SDK_LIBRARY ${PROJECT_NAME}_static) add_library(${SDK_LIBRARY} STATIC "") +add_library(livox_sdk::livox_sdk ALIAS ${SDK_LIBRARY}) set(LIVOX_SDK_MAJOR_VERSION "2") set(LIVOX_SDK_MINOR_VERSION "3") -- 2.52.0 From 16715218dd1d144d01b8c7a46def95bbd9ec8d56 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:26:32 +0100 Subject: [PATCH 04/14] Add public include directories only when in build tree --- sdk_core/CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index 8679e71..4f66366 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -12,10 +12,10 @@ set(LIVOX_SDK_VERSION_STRING "${LIVOX_SDK_MAJOR_VERSION}.${LIVOX_SDK_MINOR_VERSI target_include_directories(${SDK_LIBRARY} PUBLIC - include - include/third_party/FastCRC - include/third_party/spdlog - include/third_party/cmdline + "$" + "$" + "$" + "$" PRIVATE src) -- 2.52.0 From 583b2f382dd6ec9d462714ca4412be95d8d9cc45 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:26:41 +0100 Subject: [PATCH 05/14] Add proper installation rules for library --- cmake/install-config.cmake | 1 + cmake/install-rules.cmake | 32 ++++++++++++++++++++++++++++++++ sdk_core/CMakeLists.txt | 10 +++++----- 3 files changed, 38 insertions(+), 5 deletions(-) create mode 100644 cmake/install-config.cmake create mode 100644 cmake/install-rules.cmake diff --git a/cmake/install-config.cmake b/cmake/install-config.cmake new file mode 100644 index 0000000..0022412 --- /dev/null +++ b/cmake/install-config.cmake @@ -0,0 +1 @@ +include("${CMAKE_CURRENT_LIST_DIR}/livox_sdkTargets.cmake") diff --git a/cmake/install-rules.cmake b/cmake/install-rules.cmake new file mode 100644 index 0000000..e206bc0 --- /dev/null +++ b/cmake/install-rules.cmake @@ -0,0 +1,32 @@ +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +# Name of the package to use when calling find_package() in consumer code +set(package livox_sdk) + +# Install target types (ARCHIVE, LIBRARY, PUBLIC_HEADER, ...) to default locations (lib, include) +# and create an export. +install(TARGETS ${SDK_LIBRARY} EXPORT livox_sdkTargets) + +# Allow package maintainers to freely override the path for the configs +set(livox_sdk_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${package}" + CACHE PATH "CMake package config location relative to the install prefix") +mark_as_advanced(livox_sdk_INSTALL_CMAKEDIR) + +# Copy the package config file to the install location and give it the correct name +install(FILES ../cmake/install-config.cmake + DESTINATION ${livox_sdk_INSTALL_CMAKEDIR} + RENAME "${package}Config.cmake") + +write_basic_package_version_file("../${package}ConfigVersion.cmake" + VERSION ${LIVOX_SDK_VERSION_STRING} + COMPATIBILITY SameMajorVersion) + +# Copy the package version file the the install location +install(FILES "${PROJECT_BINARY_DIR}/${package}ConfigVersion.cmake" + DESTINATION ${livox_sdk_INSTALL_CMAKEDIR}) + +# Generate and install a CMake file with code for installing targets from the given export +install(EXPORT livox_sdkTargets + NAMESPACE livox_sdk:: + DESTINATION ${livox_sdk_INSTALL_CMAKEDIR}) diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index 4f66366..461e595 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -4,6 +4,10 @@ set(SDK_LIBRARY ${PROJECT_NAME}_static) add_library(${SDK_LIBRARY} STATIC "") add_library(livox_sdk::livox_sdk ALIAS ${SDK_LIBRARY}) +set_target_properties(${SDK_LIBRARY} PROPERTIES + EXPORT_NAME livox_sdk + OUTPUT_NAME livox_sdk) + set(LIVOX_SDK_MAJOR_VERSION "2") set(LIVOX_SDK_MINOR_VERSION "3") set(LIVOX_SDK_PATCH_VERSION "0") @@ -85,8 +89,4 @@ target_sources(${SDK_LIBRARY} src/base/wake_up/wake_up_pipe.h src/base/wake_up/${PLATFORM}/wake_up_pipe.cpp) - -install(TARGETS ${SDK_LIBRARY} - PUBLIC_HEADER DESTINATION include - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) \ No newline at end of file +include(../cmake/install-rules.cmake) -- 2.52.0 From 758113809c0219280423cd0d2da2712305245f2a Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:27:44 +0100 Subject: [PATCH 06/14] Change installation directories for library I prefer putting the headers and library files not directly into the lib or include directory, but into a package-specific subdirectory. --- cmake/install-rules.cmake | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/cmake/install-rules.cmake b/cmake/install-rules.cmake index e206bc0..3af7c17 100644 --- a/cmake/install-rules.cmake +++ b/cmake/install-rules.cmake @@ -4,14 +4,15 @@ include(CMakePackageConfigHelpers) # Name of the package to use when calling find_package() in consumer code set(package livox_sdk) -# Install target types (ARCHIVE, LIBRARY, PUBLIC_HEADER, ...) to default locations (lib, include) -# and create an export. -install(TARGETS ${SDK_LIBRARY} EXPORT livox_sdkTargets) +set(livox_sdk_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${package}") +set(livox_sdk_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${package}") +set(livox_sdk_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${package}") -# Allow package maintainers to freely override the path for the configs -set(livox_sdk_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${package}" - CACHE PATH "CMake package config location relative to the install prefix") -mark_as_advanced(livox_sdk_INSTALL_CMAKEDIR) +# Install target types to the given destinations and create an export. +install(TARGETS ${SDK_LIBRARY} EXPORT livox_sdkTargets + ARCHIVE DESTINATION "${livox_sdk_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${livox_sdk_INSTALL_LIBDIR}" + PUBLIC_HEADER DESTINATION "${livox_sdk_INSTALL_INCLUDEDIR}") # Copy the package config file to the install location and give it the correct name install(FILES ../cmake/install-config.cmake -- 2.52.0 From e9ded075f57d5c932ce5a235406c6bfe2185f66e Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:35:59 +0100 Subject: [PATCH 07/14] Fix include directories of library target --- sdk_core/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index 461e595..a2e8d87 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -17,10 +17,10 @@ set(LIVOX_SDK_VERSION_STRING "${LIVOX_SDK_MAJOR_VERSION}.${LIVOX_SDK_MINOR_VERSI target_include_directories(${SDK_LIBRARY} PUBLIC "$" + PRIVATE "$" "$" "$" - PRIVATE src) set_target_properties(${SDK_LIBRARY} PROPERTIES PUBLIC_HEADER "include/livox_def.h;include/livox_sdk.h") -- 2.52.0 From ba603921d40985856063a8c13e27d0c9b970061a Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 13:52:19 +0100 Subject: [PATCH 08/14] Fix include directories of samples --- sample/hub_lvx_file/CMakeLists.txt | 4 ++++ sample/lidar_lvx_file/CMakeLists.txt | 4 ++++ sample_cc/hub/CMakeLists.txt | 4 ++++ sample_cc/lidar/CMakeLists.txt | 14 ++++++++++++++ sample_cc/lidar_utc_sync/CMakeLists.txt | 4 ++++ sdk_core/CMakeLists.txt | 1 - 6 files changed, 30 insertions(+), 1 deletion(-) diff --git a/sample/hub_lvx_file/CMakeLists.txt b/sample/hub_lvx_file/CMakeLists.txt index e7ddf56..10d81d9 100644 --- a/sample/hub_lvx_file/CMakeLists.txt +++ b/sample/hub_lvx_file/CMakeLists.txt @@ -7,3 +7,7 @@ target_link_libraries(${DEMO_NAME} PRIVATE ${PROJECT_NAME}_static ) +target_include_directories(${DEMO_NAME} + PRIVATE + "${CMAKE_SOURCE_DIR}/sdk_core/include/third_party/cmdline" + ) diff --git a/sample/lidar_lvx_file/CMakeLists.txt b/sample/lidar_lvx_file/CMakeLists.txt index 46d5d99..938c534 100644 --- a/sample/lidar_lvx_file/CMakeLists.txt +++ b/sample/lidar_lvx_file/CMakeLists.txt @@ -7,3 +7,7 @@ target_link_libraries(${DEMO_NAME} PRIVATE ${PROJECT_NAME}_static ) +target_include_directories(${DEMO_NAME} + PRIVATE + "${CMAKE_SOURCE_DIR}/sdk_core/include/third_party/cmdline" + ) diff --git a/sample_cc/hub/CMakeLists.txt b/sample_cc/hub/CMakeLists.txt index 5840403..9966f72 100644 --- a/sample_cc/hub/CMakeLists.txt +++ b/sample_cc/hub/CMakeLists.txt @@ -7,3 +7,7 @@ target_link_libraries(${DEMO_NAME} PRIVATE ${PROJECT_NAME}_static ) +target_include_directories(${DEMO_NAME} + PRIVATE + "${CMAKE_SOURCE_DIR}/sdk_core/include/third_party/cmdline" + ) diff --git a/sample_cc/lidar/CMakeLists.txt b/sample_cc/lidar/CMakeLists.txt index 07aeed1..2a6b854 100644 --- a/sample_cc/lidar/CMakeLists.txt +++ b/sample_cc/lidar/CMakeLists.txt @@ -7,3 +7,17 @@ target_link_libraries(${DEMO_NAME} PRIVATE ${PROJECT_NAME}_static ) +target_include_directories(${DEMO_NAME} + PRIVATE + "${CMAKE_SOURCE_DIR}/sdk_core/include/third_party/cmdline" + ) + +message("----- CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}") +message("----- CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}") +message("----- CMAKE_BINARY_DIR = ${CMAKE_BINARY_DIR}") +message("----- CMAKE_CURRENT_BINARY_DIR = ${CMAKE_CURRENT_BINARY_DIR}") +message("----- PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}") + + +get_target_property(incl_dirs ${DEMO_NAME} INCLUDE_DIRECTORIES) +message("----- ${DEMO_NAME} incl dirs = ${incl_dirs}") diff --git a/sample_cc/lidar_utc_sync/CMakeLists.txt b/sample_cc/lidar_utc_sync/CMakeLists.txt index 9c84884..c60b3f4 100644 --- a/sample_cc/lidar_utc_sync/CMakeLists.txt +++ b/sample_cc/lidar_utc_sync/CMakeLists.txt @@ -11,3 +11,7 @@ target_link_libraries(${DEMO_NAME} PRIVATE ${PROJECT_NAME}_static ) +target_include_directories(${DEMO_NAME} + PRIVATE + "${CMAKE_SOURCE_DIR}/sdk_core/include/third_party/cmdline" + ) \ No newline at end of file diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index a2e8d87..54b0cc0 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -20,7 +20,6 @@ target_include_directories(${SDK_LIBRARY} PRIVATE "$" "$" - "$" src) set_target_properties(${SDK_LIBRARY} PROPERTIES PUBLIC_HEADER "include/livox_def.h;include/livox_sdk.h") -- 2.52.0 From 600af53fae8259be0fa491b26aa22bd55e6d1813 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 14:36:09 +0100 Subject: [PATCH 09/14] Remove debug messages from CMake code --- sample_cc/lidar/CMakeLists.txt | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/sample_cc/lidar/CMakeLists.txt b/sample_cc/lidar/CMakeLists.txt index 2a6b854..213be2d 100644 --- a/sample_cc/lidar/CMakeLists.txt +++ b/sample_cc/lidar/CMakeLists.txt @@ -11,13 +11,3 @@ target_include_directories(${DEMO_NAME} PRIVATE "${CMAKE_SOURCE_DIR}/sdk_core/include/third_party/cmdline" ) - -message("----- CMAKE_SOURCE_DIR = ${CMAKE_SOURCE_DIR}") -message("----- CMAKE_CURRENT_SOURCE_DIR = ${CMAKE_CURRENT_SOURCE_DIR}") -message("----- CMAKE_BINARY_DIR = ${CMAKE_BINARY_DIR}") -message("----- CMAKE_CURRENT_BINARY_DIR = ${CMAKE_CURRENT_BINARY_DIR}") -message("----- PROJECT_SOURCE_DIR = ${PROJECT_SOURCE_DIR}") - - -get_target_property(incl_dirs ${DEMO_NAME} INCLUDE_DIRECTORIES) -message("----- ${DEMO_NAME} incl dirs = ${incl_dirs}") -- 2.52.0 From 79c82236557462fdae4761db8bf072d601e267b2 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 14:23:40 +0100 Subject: [PATCH 10/14] Only build samples if project is top level --- CMakeLists.txt | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d627a0..f31e6b2 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,10 +2,17 @@ cmake_minimum_required(VERSION 3.0) project(livox_sdk) -set(CMAKE_CXX_STANDARD 11) - message(STATUS "main project dir: " ${PROJECT_SOURCE_DIR}) +# This variable is set by project() in CMake 3.21+ +string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}" PROJECT_IS_TOP_LEVEL) + +if(PROJECT_IS_TOP_LEVEL) + option(shared_DEVELOPER_MODE "Enable developer mode" OFF) +endif() + +set(CMAKE_CXX_STANDARD 11) + if (CMAKE_CROSSCOMPILING) set(THREADS_PTHREAD_ARG "PLEASE_FILL_OUT-FAILED_TO_RUN" @@ -16,12 +23,16 @@ if (UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") endif(UNIX) +# Always build the core SDK library add_subdirectory(sdk_core sdk_core) -add_subdirectory(sample/hub) -add_subdirectory(sample/lidar) -add_subdirectory(sample/hub_lvx_file) -add_subdirectory(sample/lidar_lvx_file) -add_subdirectory(sample_cc/hub) -add_subdirectory(sample_cc/lidar) -add_subdirectory(sample_cc/trouble_shooting) -add_subdirectory(sample_cc/lidar_utc_sync) +# Only build the samples if this is the top-level project +if(PROJECT_IS_TOP_LEVEL) + add_subdirectory(sample/hub) + add_subdirectory(sample/lidar) + add_subdirectory(sample/hub_lvx_file) + add_subdirectory(sample/lidar_lvx_file) + add_subdirectory(sample_cc/hub) + add_subdirectory(sample_cc/lidar) + add_subdirectory(sample_cc/trouble_shooting) + add_subdirectory(sample_cc/lidar_utc_sync) +endif() \ No newline at end of file -- 2.52.0 From 2d782aee6c137344e86f4685749171a0a0bc98df Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 14:23:50 +0100 Subject: [PATCH 11/14] Make unnecessarily hard-coded flags optional --- sdk_core/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index 54b0cc0..9964be3 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -30,10 +30,13 @@ else(WIN32) set(PLATFORM unix) endif (WIN32) -target_compile_options(${SDK_LIBRARY} +# Warnings are only for developers +if(shared_DEVELOPER_MODE) + target_compile_options(${SDK_LIBRARY} PRIVATE $<$:-Wall -Werror -Wno-c++11-long-long> PRIVATE $<$:-Wno-unknown-pragmas -Wall -Werror -Wno-c++11-long-long> PRIVATE $<$:-Wno-unknown-pragmas -Wall -Werror -Wno-c++11-long-long>) +endif() target_sources(${SDK_LIBRARY} PRIVATE -- 2.52.0 From 358a7205845eb34ed699497e51b16662236e6cdd Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 15:32:22 +0100 Subject: [PATCH 12/14] Add WIN32 to all compile definitions if on Windows --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index f31e6b2..4b15a0e 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,10 @@ if (UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread") endif(UNIX) +if(WIN32) + add_compile_definitions("WIN32") +endif(WIN32) + # Always build the core SDK library add_subdirectory(sdk_core sdk_core) # Only build the samples if this is the top-level project -- 2.52.0 From 94bd40cd32035e2791c1b043da1e11dd0a419533 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 16:02:42 +0100 Subject: [PATCH 13/14] Add separate option for building the samples --- CMakeLists.txt | 11 ++--------- cmake/variables-and-options.cmake | 8 ++++++++ 2 files changed, 10 insertions(+), 9 deletions(-) create mode 100644 cmake/variables-and-options.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b15a0e..0017d47 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,12 +4,7 @@ project(livox_sdk) message(STATUS "main project dir: " ${PROJECT_SOURCE_DIR}) -# This variable is set by project() in CMake 3.21+ -string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}" PROJECT_IS_TOP_LEVEL) - -if(PROJECT_IS_TOP_LEVEL) - option(shared_DEVELOPER_MODE "Enable developer mode" OFF) -endif() +include(cmake/variables-and-options.cmake) set(CMAKE_CXX_STANDARD 11) @@ -27,10 +22,8 @@ if(WIN32) add_compile_definitions("WIN32") endif(WIN32) -# Always build the core SDK library add_subdirectory(sdk_core sdk_core) -# Only build the samples if this is the top-level project -if(PROJECT_IS_TOP_LEVEL) +if(BUILD_SAMPLES) add_subdirectory(sample/hub) add_subdirectory(sample/lidar) add_subdirectory(sample/hub_lvx_file) diff --git a/cmake/variables-and-options.cmake b/cmake/variables-and-options.cmake new file mode 100644 index 0000000..8a284c6 --- /dev/null +++ b/cmake/variables-and-options.cmake @@ -0,0 +1,8 @@ +# This variable is set by project() in CMake 3.21+ +string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${PROJECT_SOURCE_DIR}" PROJECT_IS_TOP_LEVEL) + +if(PROJECT_IS_TOP_LEVEL) + option(shared_DEVELOPER_MODE "Enable developer mode" OFF) +endif() + +option(BUILD_SAMPLES "Build the samples" OFF) -- 2.52.0 From 90f06d33454e9ad15decb1b764e7985b2465db65 Mon Sep 17 00:00:00 2001 From: Patrick Kappl Date: Thu, 11 Jan 2024 17:21:13 +0100 Subject: [PATCH 14/14] Change installation rules to match defaults of vcpkg --- cmake/install-config.cmake | 2 +- cmake/install-rules.cmake | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cmake/install-config.cmake b/cmake/install-config.cmake index 0022412..5f3e647 100644 --- a/cmake/install-config.cmake +++ b/cmake/install-config.cmake @@ -1 +1 @@ -include("${CMAKE_CURRENT_LIST_DIR}/livox_sdkTargets.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/livox-sdkTargets.cmake") diff --git a/cmake/install-rules.cmake b/cmake/install-rules.cmake index 3af7c17..9c49d34 100644 --- a/cmake/install-rules.cmake +++ b/cmake/install-rules.cmake @@ -1,15 +1,17 @@ include(GNUInstallDirs) include(CMakePackageConfigHelpers) -# Name of the package to use when calling find_package() in consumer code -set(package livox_sdk) +# Name of the package to use when calling find_package() in consumer code. We use +# kebap-case because vcpkg uses that for its port names. +set(package livox-sdk) set(livox_sdk_INSTALL_LIBDIR "${CMAKE_INSTALL_LIBDIR}/${package}") set(livox_sdk_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}/${package}") -set(livox_sdk_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${package}") +# Set the install directory for the *config.cmake files to the path where vcpkg looks by default +set(livox_sdk_INSTALL_CMAKEDIR "share/${package}") # Install target types to the given destinations and create an export. -install(TARGETS ${SDK_LIBRARY} EXPORT livox_sdkTargets +install(TARGETS ${SDK_LIBRARY} EXPORT livox-sdkTargets ARCHIVE DESTINATION "${livox_sdk_INSTALL_LIBDIR}" LIBRARY DESTINATION "${livox_sdk_INSTALL_LIBDIR}" PUBLIC_HEADER DESTINATION "${livox_sdk_INSTALL_INCLUDEDIR}") @@ -28,6 +30,6 @@ install(FILES "${PROJECT_BINARY_DIR}/${package}ConfigVersion.cmake" DESTINATION ${livox_sdk_INSTALL_CMAKEDIR}) # Generate and install a CMake file with code for installing targets from the given export -install(EXPORT livox_sdkTargets +install(EXPORT livox-sdkTargets NAMESPACE livox_sdk:: DESTINATION ${livox_sdk_INSTALL_CMAKEDIR}) -- 2.52.0