cmake_minimum_required(VERSION 3.16) project(xlidar_driver VERSION 2.0.0 LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() find_package(Threads REQUIRED) option(XLIDAR_BUILD_EXAMPLES "Build example/demo binaries" ON) # Where the rplidar plugin finds the Slamtec SDK sources (include/ + src/). # Empty + not auto-detected -> the rplidar plugin is skipped with a warning. set(XLIDAR_RPLIDAR_SDK_DIR "" CACHE PATH "Path to the Slamtec RPLIDAR SDK (dir containing include/ and src/)") add_subdirectory(src) add_subdirectory(plugins) if(XLIDAR_BUILD_EXAMPLES) add_subdirectory(examples) endif() # ── install + find_package() support ───────────────────────────────────────── include(GNUInstallDirs) include(CMakePackageConfigHelpers) install(TARGETS lidar_manager EXPORT xlidar_driverTargets ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/xlidar) install(EXPORT xlidar_driverTargets FILE xlidar_driverTargets.cmake NAMESPACE xlidar:: DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xlidar_driver ) configure_package_config_file( cmake/xlidar_driverConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/xlidar_driverConfig.cmake INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xlidar_driver ) write_basic_package_version_file( ${CMAKE_CURRENT_BINARY_DIR}/xlidar_driverConfigVersion.cmake VERSION ${PROJECT_VERSION} COMPATIBILITY SameMajorVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/xlidar_driverConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/xlidar_driverConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xlidar_driver )