Use custom wlroots fork

Signed-off-by: Slendi <slendi@socopon.com>
This commit is contained in:
2025-07-10 02:07:58 +03:00
parent dd6cadb50d
commit 1cc97753a5
4 changed files with 169 additions and 23 deletions

View File

@@ -19,10 +19,18 @@ 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(WLROOTS REQUIRED IMPORTED_TARGET wlroots-0.20)
pkg_check_modules(XKBCOMMON REQUIRED IMPORTED_TARGET xkbcommon)
pkg_check_modules(OPENXR REQUIRED IMPORTED_TARGET openxr)
find_program(WAYLAND_SCANNER_EXECUTABLE wayland-scanner REQUIRED)
message(STATUS "Found wayland-scanner at ${WAYLAND_SCANNER_EXECUTABLE}")
pkg_get_variable(WAYLAND_PROTOCOLS_DIR wayland-protocols pkgdatadir)
message(STATUS "Found wayland-protocols at ${WAYLAND_PROTOCOLS_DIR}")
pkg_get_variable(WAYLAND_SCANNER_PKGDATA_DIR wayland-scanner pkgdatadir)
message(
STATUS "Found wayland-scanner pkgdatadir at ${WAYLAND_SCANNER_PKGDATA_DIR}")
include(FetchContent)
FetchContent_Declare(
@@ -55,3 +63,55 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
raylib
)
set(XDG_SHELL_XML
${WAYLAND_PROTOCOLS_DIR}/stable/xdg-shell/xdg-shell.xml
)
set(XDG_SHELL_HEADER
${CMAKE_BINARY_DIR}/xdg-shell-protocol.h
)
set(XDG_SHELL_C
${CMAKE_BINARY_DIR}/xdg-shell-protocol.c
)
add_custom_command(
OUTPUT ${XDG_SHELL_HEADER}
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} server-header
${XDG_SHELL_XML} ${XDG_SHELL_HEADER}
DEPENDS ${XDG_SHELL_XML}
COMMENT "Generating xdg-shell-protocol.h (server header)"
VERBATIM
)
add_custom_command(
OUTPUT ${XDG_SHELL_C}
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} private-code
${XDG_SHELL_XML} ${XDG_SHELL_C}
DEPENDS ${XDG_SHELL_XML}
COMMENT "Generating xdg-shell-protocol.c"
VERBATIM
)
add_custom_target(xdg_shell_protocol
DEPENDS ${XDG_SHELL_HEADER} ${XDG_SHELL_C}
)
add_library(xdg_shell STATIC
${XDG_SHELL_C}
)
add_dependencies(xdg_shell xdg_shell_protocol)
target_include_directories(xdg_shell PUBLIC
${CMAKE_BINARY_DIR}
)
add_dependencies(${PROJECT_NAME} xdg_shell_protocol)
target_link_libraries(${PROJECT_NAME} PRIVATE xdg_shell)
target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_BINARY_DIR}
)