summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)