8eb7eaba3d
These two classes represent our first foray into stencil construction. One of them standardizes PcloudAmbience stencils across all stimbuffs, and the other specifies the internal memory constraints and requirements for a LivoxGen1 device's stencils.
60 lines
1.6 KiB
CMake
60 lines
1.6 KiB
CMake
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
|
|
lg1PcloudAmbienceStencil.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="$<TARGET_FILE:livoxGen1>"
|
|
-P ${CMAKE_SOURCE_DIR}/cmake/VerifyBoostDynamic.cmake
|
|
COMMENT "Verifying Boost dynamic dependencies for livoxGen1"
|
|
)
|
|
|
|
# Install rules
|
|
install(TARGETS livoxGen1 DESTINATION lib)
|
|
endif()
|