wegen/FrOSCon26/examples/CMakeLists.txt

50 lines
1.7 KiB
CMake
Raw Normal View History

#
# 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(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::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)