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)