56 lines
1.3 KiB
CMake
56 lines
1.3 KiB
CMake
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 REQUIRED)
|
|
|
|
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)
|
|
|
|
include(FetchContent)
|
|
|
|
FetchContent_Declare(
|
|
raylib
|
|
GIT_REPOSITORY https://github.com/slendidev/raylib.git
|
|
GIT_TAG "lunar"
|
|
GIT_SHALLOW 1
|
|
)
|
|
set(OPENGL_VERSION "ES 3.0")
|
|
set(PLATFORM DRM)
|
|
set(BUILD_EXAMPLES OFF)
|
|
FetchContent_MakeAvailable(raylib)
|
|
|
|
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
|
|
raylib
|
|
)
|
|
|