Files
DriverLIdar/CMakeLists.txt
loctv 5b2c74bd36 refactor: restructure lidarlib into xlidar-driver plugin SDK
- 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>
2026-07-12 22:30:56 +07:00

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
)