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. 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..3af7c17 --- /dev/null +++ b/cmake/install-rules.cmake @@ -0,0 +1,33 @@ +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) + +# Name of the package to use when calling find_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}) diff --git a/sdk_core/CMakeLists.txt b/sdk_core/CMakeLists.txt index 60037f6..461e595 100644 --- a/sdk_core/CMakeLists.txt +++ b/sdk_core/CMakeLists.txt @@ -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 + "$" + "$" + "$" + "$" 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) \ No newline at end of file +include(../cmake/install-rules.cmake)