cmake_dependent_option(ENABLE_STIMBUFFAPI_livoxGen1 "Enable Livox Gen1 LiDAR stim buff API" ON "ENABLE_LIB_livoxProto1" OFF) if(ENABLE_STIMBUFFAPI_livoxGen1) # Set CONFIG variable for config.h set(CONFIG_STIMBUFFAPI_LIVOXGEN1_ENABLED 1) # Find liburing using pkg-config pkg_check_modules(URING REQUIRED liburing) # Enable assembly language enable_language(ASM) add_library(livoxGen1 SHARED livoxGen1.cpp pcloudStimulusProducer.cpp ioUringAssemblyEngine.cpp openClCollatingAndMeshingEngine.cpp openClKernels.cl.S ) # Set assembler working directory so .incbin can find the .cl file # Also declare dependency on collateDgrams.cl and slotCompactor.cl set_source_files_properties(openClKernels.cl.S PROPERTIES COMPILE_FLAGS "-I${CMAKE_CURRENT_SOURCE_DIR}" OBJECT_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/collateDgrams.cl;${CMAKE_CURRENT_SOURCE_DIR}/slotCompactor.cl" ) target_include_directories(livoxGen1 PUBLIC ${Boost_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/commonLibs ${URING_INCLUDE_DIRS} ${OPENCL_INCLUDE_DIRS} ) target_link_libraries(livoxGen1 PUBLIC Boost::system Boost::log ${URING_LIBRARIES} ${OPENCL_LIBRARIES} attachmentSupport ) target_link_directories(livoxGen1 PUBLIC ${URING_LIBRARY_DIRS} ${OPENCL_LIBRARY_DIRS} ) # Verify Boost dynamic dependencies after build add_custom_command(TARGET livoxGen1 POST_BUILD COMMAND ${CMAKE_COMMAND} -DVERIFY_FILE="$" -P ${CMAKE_SOURCE_DIR}/cmake/VerifyBoostDynamic.cmake COMMENT "Verifying Boost dynamic dependencies for livoxGen1" ) # Install rules install(TARGETS livoxGen1 DESTINATION lib) endif()