summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorKieran Bingham <kieran.bingham@ideasonboard.com>2022-08-09 13:02:55 +0100
committerKieran Bingham <kieran.bingham@ideasonboard.com>2022-08-09 15:22:02 +0100
commitc4a341aa444f2488557a3346924c2eb090dfc07c (patch)
tree62a108ec3ca173651a6e0c216d110c6d12726f4c /CMakeLists.txt
parentd1f034055fbb433d155db147752e09580451df04 (diff)
cmake: Provide a sample CMakeLists.txtHEADmaster
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>
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt32
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)