Message ID | 20220809134423.2092524-1-kieran.bingham@ideasonboard.com |
---|---|
State | Accepted |
Headers | show |
Series |
|
Related | show |
Hi Kieran, Thank you for the patch. On Tue, Aug 09, 2022 at 02:44:23PM +0100, Kieran Bingham via libcamera-devel wrote: > 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. > > Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > --- > v2: > - Add compiler flags > - Fix 'it's' > - Remove stray leftovers > - Remove version number > > CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ > 1 file changed, 32 insertions(+) > create mode 100644 CMakeLists.txt > > diff --git a/CMakeLists.txt b/CMakeLists.txt > new file mode 100644 > index 000000000000..2a86b55ebeea > --- /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)
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000000..2a86b55ebeea --- /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)
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. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> --- v2: - Add compiler flags - Fix 'it's' - Remove stray leftovers - Remove version number CMakeLists.txt | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 CMakeLists.txt