3e85b920fb
We can, theoretically, now change the v4l camera's mode.
131 lines
3.3 KiB
CMake
131 lines
3.3 KiB
CMake
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="$<TARGET_FILE:lcameraDev>"
|
|
-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()
|