|
|
|
@ -45,30 +45,44 @@ if (_GLFW_X11 OR _GLFW_WAYLAND) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|
if (_GLFW_WAYLAND) |
|
|
|
|
ecm_add_wayland_client_protocol(GLFW_WAYLAND_PROTOCOL_SOURCES |
|
|
|
|
PROTOCOL |
|
|
|
|
"${WAYLAND_PROTOCOLS_PKGDATADIR}/stable/xdg-shell/xdg-shell.xml" |
|
|
|
|
BASENAME xdg-shell) |
|
|
|
|
ecm_add_wayland_client_protocol(GLFW_WAYLAND_PROTOCOL_SOURCES |
|
|
|
|
PROTOCOL |
|
|
|
|
"${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml" |
|
|
|
|
BASENAME xdg-decoration) |
|
|
|
|
ecm_add_wayland_client_protocol(GLFW_WAYLAND_PROTOCOL_SOURCES |
|
|
|
|
PROTOCOL |
|
|
|
|
"${WAYLAND_PROTOCOLS_PKGDATADIR}/stable/viewporter/viewporter.xml" |
|
|
|
|
BASENAME viewporter) |
|
|
|
|
ecm_add_wayland_client_protocol(GLFW_WAYLAND_PROTOCOL_SOURCES |
|
|
|
|
PROTOCOL |
|
|
|
|
"${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/relative-pointer/relative-pointer-unstable-v1.xml" |
|
|
|
|
BASENAME relative-pointer-unstable-v1) |
|
|
|
|
ecm_add_wayland_client_protocol(GLFW_WAYLAND_PROTOCOL_SOURCES |
|
|
|
|
PROTOCOL |
|
|
|
|
"${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml" |
|
|
|
|
BASENAME pointer-constraints-unstable-v1) |
|
|
|
|
ecm_add_wayland_client_protocol(GLFW_WAYLAND_PROTOCOL_SOURCES |
|
|
|
|
PROTOCOL |
|
|
|
|
"${WAYLAND_PROTOCOLS_PKGDATADIR}/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml" |
|
|
|
|
BASENAME idle-inhibit-unstable-v1) |
|
|
|
|
find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner) |
|
|
|
|
pkg_check_modules(WAYLAND_PROTOCOLS REQUIRED wayland-protocols>=1.15) |
|
|
|
|
pkg_get_variable(WAYLAND_PROTOCOLS_BASE wayland-protocols pkgdatadir) |
|
|
|
|
|
|
|
|
|
macro(wayland_generate protocol_file output_file) |
|
|
|
|
add_custom_command(OUTPUT ${output_file}.h |
|
|
|
|
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} client-header |
|
|
|
|
< ${protocol_file} > ${output_file}.h |
|
|
|
|
DEPENDS ${protocol_file}) |
|
|
|
|
list(APPEND GLFW_WAYLAND_PROTOCOL_SOURCES ${output_file}.h) |
|
|
|
|
|
|
|
|
|
add_custom_command(OUTPUT ${output_file}.c |
|
|
|
|
COMMAND ${WAYLAND_SCANNER_EXECUTABLE} private-code |
|
|
|
|
< ${protocol_file} > ${output_file}.c |
|
|
|
|
DEPENDS ${protocol_file}) |
|
|
|
|
list(APPEND GLFW_WAYLAND_PROTOCOL_SOURCES ${output_file}.c) |
|
|
|
|
endmacro() |
|
|
|
|
|
|
|
|
|
set(GLFW_WAYLAND_PROTOCOL_SOURCES) |
|
|
|
|
wayland_generate( |
|
|
|
|
${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml |
|
|
|
|
${CMAKE_BINARY_DIR}/src/wayland-xdg-shell-client-protocol) |
|
|
|
|
wayland_generate( |
|
|
|
|
${WAYLAND_PROTOCOLS_BASE}/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml |
|
|
|
|
${CMAKE_BINARY_DIR}/src/wayland-xdg-decoration-client-protocol) |
|
|
|
|
wayland_generate( |
|
|
|
|
${WAYLAND_PROTOCOLS_BASE}/stable/viewporter/viewporter.xml |
|
|
|
|
${CMAKE_BINARY_DIR}/src/wayland-viewporter-client-protocol) |
|
|
|
|
wayland_generate( |
|
|
|
|
${WAYLAND_PROTOCOLS_BASE}/unstable/relative-pointer/relative-pointer-unstable-v1.xml |
|
|
|
|
${CMAKE_BINARY_DIR}/src/wayland-relative-pointer-unstable-v1-client-protocol) |
|
|
|
|
wayland_generate( |
|
|
|
|
${WAYLAND_PROTOCOLS_BASE}/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml |
|
|
|
|
${CMAKE_BINARY_DIR}/src/wayland-pointer-constraints-unstable-v1-client-protocol) |
|
|
|
|
wayland_generate( |
|
|
|
|
${WAYLAND_PROTOCOLS_BASE}/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml |
|
|
|
|
${CMAKE_BINARY_DIR}/src/wayland-idle-inhibit-unstable-v1-client-protocol) |
|
|
|
|
|
|
|
|
|
target_sources(glfw PRIVATE ${GLFW_WAYLAND_PROTOCOL_SOURCES}) |
|
|
|
|
endif() |
|
|
|
|
|
|
|
|
|