- LidarManager facade (liblidar_manager.so): dlopen plugin discovery, available_drivers map<driver_id, PluginRegistry>, create_lidar_device, config.json load/save with legacy lidarlib migration - Common LidarDriverInterface + DriverInfo/DeviceConfig plugin ABI (extern C get_driver_info / create_driver_instance) - Plugins: driver_rplidar (ported from xlocd, Slamtec SDK), driver_olei, driver_sick_code (TiM CoLa-A), driver_sick_safety (nanoScan3), driver_espe - Diagnostics extended with rplidar health + firmware; FOV filter window, range override and legacy remap window unified in DeviceConfig - Rewritten README, diagnostics doc and examples (list_drivers, example, lidar_app) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
57 lines
1.8 KiB
CMake
57 lines
1.8 KiB
CMake
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
|
|
)
|