diff options
author | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2022-08-09 13:02:55 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2022-08-09 15:22:02 +0100 |
commit | c4a341aa444f2488557a3346924c2eb090dfc07c (patch) | |
tree | 62a108ec3ca173651a6e0c216d110c6d12726f4c | |
parent | d1f034055fbb433d155db147752e09580451df04 (diff) |
While libcamera uses meson as its build infrastructure, applications are
free to use other make systems. CMake is widely used, so add an example
CMakeLists.txt to support building simple-cam and linking against
libcamera using cmake.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r-- | CMakeLists.txt | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2a86b55 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,32 @@ +cmake_minimum_required(VERSION 3.6) + +project(SimpleCam + DESCRIPTION "A small and documented example application for libcamera" + LANGUAGES CXX) + +set (CMAKE_CXX_STANDARD 17) + +set (CMAKE_CXX_FLAGS "-Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -Werror -Wno-unused-parameter") + +find_package(PkgConfig) + +pkg_check_modules(LIBCAMERA REQUIRED IMPORTED_TARGET libcamera) +message(STATUS "libcamera library found:") +message(STATUS " version: ${LIBCAMERA_VERSION}") +message(STATUS " libraries: ${LIBCAMERA_LINK_LIBRARIES}") +message(STATUS " include path: ${LIBCAMERA_INCLUDE_DIRS}") + +# libevent is used specifically by simple-cam as its event loop. +# Applications may use a different event handling implementation. +pkg_check_modules(LIBEVENT REQUIRED IMPORTED_TARGET libevent_pthreads) +message(STATUS "libevent_pthreads library found:") +message(STATUS " version: ${LIBEVENT_VERSION}") +message(STATUS " libraries: ${LIBEVENT_LINK_LIBRARIES}") +message(STATUS " include path: ${LIBEVENT_INCLUDE_DIRS}") + +include_directories(${CMAKE_SOURCE_DIR} ${LIBCAMERA_INCLUDE_DIRS} ${LIBEVENT_INCLUDE_DIRS}) + +add_executable(simple-cam simple-cam.cpp event_loop.cpp) + +target_link_libraries(simple-cam PkgConfig::LIBEVENT) +target_link_libraries(simple-cam PkgConfig::LIBCAMERA) |