cmake_minimum_required(VERSION 3.31) set(CMAKE_EXPERIMENTAL_CXX_IMPORT_STD "0e5b6991-d74f-4b3d-a41c-cf096e0b2508") project(LunarWM LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 23) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_MODULE_STD 1) add_compile_definitions( WLR_USE_UNSTABLE XR_USE_PLATFORM_EGL XR_USE_GRAPHICS_API_OPENGL_ES ) find_package(PkgConfig) pkg_check_modules(WAYLAND REQUIRED IMPORTED_TARGET GLOBAL wayland-server) pkg_check_modules(EGL REQUIRED IMPORTED_TARGET egl) pkg_check_modules(GLES2 REQUIRED IMPORTED_TARGET glesv2) pkg_check_modules(WLROOTS REQUIRED IMPORTED_TARGET wlroots-0.19) pkg_check_modules(OPENXR REQUIRED IMPORTED_TARGET openxr) add_executable(${PROJECT_NAME}) target_sources(${PROJECT_NAME} PUBLIC src/main.cpp ) target_sources(${PROJECT_NAME} PUBLIC FILE_SET CXX_MODULES FILES src/Math.cppm src/Compositor.cppm src/LunarWM.cppm ) target_link_libraries(${PROJECT_NAME} PUBLIC PkgConfig::WAYLAND PkgConfig::EGL PkgConfig::GLES2 PkgConfig::WLROOTS PkgConfig::OPENXR )