wegen/FrOSCon26/examples/CMakeLists.txt

51 lines
1.8 KiB
CMake
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# CMake-Build for a demo code to use io_uring and output video
#
# Copyright 2025,2026 Hermann Vosseler <Ichthyostega@web.de>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU GPL version 2+ See the LICENSE file for details.
#
cmake_minimum_required (VERSION 3.20)
# default to Debug build type, unless specified in cache or command line
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE Debug CACHE STRING "Default to Debug build")
set (CMAKE_VERBOSE_MAKEFILE TRUE CACHE STRING "Show full compile commands")
endif()
# optimise debugging symbols for GNU gdb
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb3" CACHE STRING "Special option for debug builds")
project(
DemoUringVid
VERSION 1.0
LANGUAGES CXX
)
add_compile_options("-Wall")
# dependencies via pkg-config
find_package(PkgConfig REQUIRED)
pkg_check_modules(LUR REQUIRED IMPORTED_TARGET liburing>=2.9)
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtkmm-3.0>=3.20)
pkg_check_modules(XLIB REQUIRED IMPORTED_TARGET x11>=1.7)
pkg_check_modules(EGL REQUIRED IMPORTED_TARGET egl>=1.5)
pkg_check_modules(GLEW REQUIRED IMPORTED_TARGET glew>=2.2)
# build complete source tree (detect changes on rebuild)
file(GLOB_RECURSE demo_uring_sources CONFIGURE_DEPENDS "*.cpp")
file(GLOB_RECURSE demo_uring_headers CONFIGURE_DEPENDS "*.hpp")
add_executable(demo_uring ${demo_uring_sources} ${demo_uring_headers})
target_compile_features(demo_uring PUBLIC cxx_std_17)
target_include_directories(demo_uring PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>)
target_link_libraries(demo_uring PRIVATE PkgConfig::LUR)
target_link_libraries(demo_uring PRIVATE PkgConfig::GTK)
target_link_libraries(demo_uring PRIVATE PkgConfig::XLIB)
target_link_libraries(demo_uring PRIVATE PkgConfig::EGL)
target_link_libraries(demo_uring PRIVATE PkgConfig::GLEW)