mirror of
https://github.com/fltk/fltk.git
synced 2026-05-29 20:45:33 +08:00
CMake+Wayland: check for presence of required software modules
Also, remove hardcoded path to wayland-protocols when CMake version ≥ 3.4
This commit is contained in:
@@ -196,6 +196,16 @@ if (UNIX)
|
|||||||
list (APPEND FLTK_LDLIBS -lm)
|
list (APPEND FLTK_LDLIBS -lm)
|
||||||
option (OPTION_USE_WAYLAND "support Wayland and X11 backends" OFF)
|
option (OPTION_USE_WAYLAND "support Wayland and X11 backends" OFF)
|
||||||
if (OPTION_USE_WAYLAND)
|
if (OPTION_USE_WAYLAND)
|
||||||
|
pkg_check_modules(WLDCLIENT wayland-client)
|
||||||
|
pkg_check_modules(WLDCURSOR wayland-cursor)
|
||||||
|
pkg_check_modules(WLDPROTO wayland-protocols)
|
||||||
|
pkg_check_modules(XKBCOMMON xkbcommon)
|
||||||
|
pkg_check_modules(DBUS dbus-1)
|
||||||
|
if (NOT(DBUS_FOUND AND WLDCLIENT_FOUND AND WLDCURSOR_FOUND AND WLDPROTO_FOUND AND XKBCOMMON_FOUND))
|
||||||
|
message (STATUS "Not all software modules 'wayland-client wayland-cursor wayland-protocols xkbcommon dbus-1' are present")
|
||||||
|
message (STATUS "Consequently, building for the Wayland backend is not possible.")
|
||||||
|
message (FATAL_ERROR "*** Aborting ***")
|
||||||
|
endif (NOT(DBUS_FOUND AND WLDCLIENT_FOUND AND WLDCURSOR_FOUND AND WLDPROTO_FOUND AND XKBCOMMON_FOUND))
|
||||||
option (OPTION_WAYLAND_ONLY "support Wayland backend only" OFF)
|
option (OPTION_WAYLAND_ONLY "support Wayland backend only" OFF)
|
||||||
set (FLTK_USE_WAYLAND 1)
|
set (FLTK_USE_WAYLAND 1)
|
||||||
if (NOT OPTION_WAYLAND_ONLY)
|
if (NOT OPTION_WAYLAND_ONLY)
|
||||||
@@ -409,6 +419,13 @@ if (HAVE_GL)
|
|||||||
endif (HAVE_GL)
|
endif (HAVE_GL)
|
||||||
|
|
||||||
if (OPTION_USE_GL)
|
if (OPTION_USE_GL)
|
||||||
|
if (OPTION_USE_WAYLAND)
|
||||||
|
pkg_check_modules(WLDEGL wayland-egl)
|
||||||
|
if (NOT WLDEGL_FOUND)
|
||||||
|
message (STATUS "Module 'wayland-egl' is required to build for the Wayland backend.")
|
||||||
|
message (FATAL_ERROR "*** Aborting ***")
|
||||||
|
endif (NOT WLDEGL_FOUND)
|
||||||
|
endif (OPTION_USE_WAYLAND)
|
||||||
if (OPTION_APPLE_X11)
|
if (OPTION_APPLE_X11)
|
||||||
set (OPENGL_FOUND TRUE)
|
set (OPENGL_FOUND TRUE)
|
||||||
find_library(OPENGL_LIB GL)
|
find_library(OPENGL_LIB GL)
|
||||||
|
|||||||
+9
-5
@@ -624,11 +624,15 @@ if (USE_XFT)
|
|||||||
endif (USE_XFT)
|
endif (USE_XFT)
|
||||||
|
|
||||||
if (UNIX AND OPTION_USE_WAYLAND)
|
if (UNIX AND OPTION_USE_WAYLAND)
|
||||||
if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "FreeBSD")
|
if (NOT (CMAKE_VERSION VERSION_LESS 3.4))
|
||||||
set(PROTOCOLS /usr/local/share/wayland-protocols)
|
pkg_get_variable(PROTOCOLS wayland-protocols pkgdatadir) # requires cmake 3.4
|
||||||
else ()
|
else()
|
||||||
set(PROTOCOLS /usr/share/wayland-protocols)
|
if (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||||
endif (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "FreeBSD")
|
set(PROTOCOLS /usr/local/share/wayland-protocols)
|
||||||
|
else ()
|
||||||
|
set(PROTOCOLS /usr/share/wayland-protocols)
|
||||||
|
endif (${CMAKE_HOST_SYSTEM_NAME} STREQUAL "FreeBSD")
|
||||||
|
endif (NOT (CMAKE_VERSION VERSION_LESS 3.4))
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT xdg-shell-protocol.c xdg-shell-client-protocol.h
|
OUTPUT xdg-shell-protocol.c xdg-shell-client-protocol.h
|
||||||
COMMAND wayland-scanner private-code ${PROTOCOLS}/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.c
|
COMMAND wayland-scanner private-code ${PROTOCOLS}/stable/xdg-shell/xdg-shell.xml xdg-shell-protocol.c
|
||||||
|
|||||||
Reference in New Issue
Block a user