Add proper CMake installation rules (#5)
This commit is contained in:
+6
-13
@@ -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
|
||||
|
||||
@@ -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.
|
||||
@@ -0,0 +1 @@
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/livox_sdkTargets.cmake")
|
||||
@@ -0,0 +1,33 @@
|
||||
include(GNUInstallDirs)
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
# Name of the package to use when calling find_package(<package>) in consumer code
|
||||
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}")
|
||||
|
||||
# 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
|
||||
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})
|
||||
+10
-9
@@ -2,6 +2,11 @@ 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_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")
|
||||
@@ -11,10 +16,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
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/third_party/FastCRC>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/third_party/spdlog>"
|
||||
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/third_party/cmdline>"
|
||||
PRIVATE
|
||||
src)
|
||||
|
||||
@@ -84,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)
|
||||
include(../cmake/install-rules.cmake)
|
||||
|
||||
Reference in New Issue
Block a user