option(ENABLE_LIB_lcameraDev "Enable libcamera device provider backend lib" OFF) if(ENABLE_LIB_lcameraDev) pkg_check_modules(LIBCAMERA libcamera) if(NOT LIBCAMERA_FOUND) message(FATAL_ERROR "libcamera not found. Install libcamera-dev (and runtime libcamera0.2 " "+ libcamera-ipa), then reconfigure with -DENABLE_LIB_lcameraDev=ON.") endif() add_compile_definitions(CONFIG_LIB_LCAMERADEV_ENABLED) add_library(lcameraDev SHARED lcameraDev.cpp cameraIdentity.cpp cameraModeRequest.cpp planarYuvFormatPolicy.cpp sessionModeConfigure.cpp selectorParse.cpp selectorResolve.cpp cameraManagerState.cpp cameraSession.cpp ) set_target_properties(lcameraDev PROPERTIES VERSION ${PROJECT_VERSION} SOVERSION ${PROJECT_VERSION_MAJOR} ) target_compile_definitions(lcameraDev PRIVATE CONFIG_LIB_LCAMERADEV_ENABLED) target_include_directories(lcameraDev PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include ${LIBCAMERA_INCLUDE_DIRS} ) target_link_libraries(lcameraDev PUBLIC Boost::system Boost::log spinscale ${LIBCAMERA_LIBRARIES} ) target_link_directories(lcameraDev PUBLIC ${LIBCAMERA_LIBRARY_DIRS} ) add_custom_command(TARGET lcameraDev POST_BUILD COMMAND ${CMAKE_COMMAND} -DVERIFY_FILE="$" -P ${CMAKE_SOURCE_DIR}/cmake/VerifyBoostDynamic.cmake COMMENT "Verifying Boost dynamic dependencies for lcameraDev" ) install(TARGETS lcameraDev LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} NAMELINK_SKIP ) option(ENABLE_LCAMERADEV_TOOLS "Build lcameraDev probe/list tools" ON) if(ENABLE_LCAMERADEV_TOOLS) if(NOT TARGET spinscale_test_support) message(FATAL_ERROR "lcameraDev probe tools require spinscale_test_support. " "Configure with -DLIBSPINSCALE_BUILD_TESTS=ON " "(salmanoff sets this automatically when -DENABLE_TESTS=ON).") endif() add_executable(lcameraDev_list_cameras tools/lcameraDevListCameras.cpp tools/probeRunner.cpp ) target_include_directories(lcameraDev_list_cameras PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/tools ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR}/libspinscale/tests ) target_link_libraries(lcameraDev_list_cameras PRIVATE lcameraDev spinscale spinscale_test_support Boost::system Boost::log ) add_executable(lcameraDev_probe tools/lcameraDevProbe.cpp tools/probeRunner.cpp ) target_include_directories(lcameraDev_probe PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/tools ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR}/libspinscale/tests ) target_link_libraries(lcameraDev_probe PRIVATE lcameraDev spinscale spinscale_test_support Boost::system Boost::log ) add_executable(lcameraDev_configure_probe tools/lcameraDevConfigureProbe.cpp tools/probeRunner.cpp ) target_include_directories(lcameraDev_configure_probe PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/tools ${CMAKE_SOURCE_DIR}/include ${CMAKE_BINARY_DIR}/include ${CMAKE_SOURCE_DIR}/libspinscale/tests ) target_link_libraries(lcameraDev_configure_probe PRIVATE lcameraDev spinscale spinscale_test_support Boost::system Boost::log ) endif() if(ENABLE_TESTS) add_subdirectory(tests) endif() endif()