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:
parent
72415b534d
commit
615b731783
@ -196,6 +196,16 @@ if (UNIX)
|
||||
list (APPEND FLTK_LDLIBS -lm)
|
||||
option (OPTION_USE_WAYLAND "support Wayland and X11 backends" OFF)
|
||||
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)
|
||||
set (FLTK_USE_WAYLAND 1)
|
||||
if (NOT OPTION_WAYLAND_ONLY)
|
||||
@ -409,6 +419,13 @@ if (HAVE_GL)
|
||||
endif (HAVE_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)
|
||||
set (OPENGL_FOUND TRUE)
|
||||
find_library(OPENGL_LIB GL)
|
||||
|
@ -624,11 +624,15 @@ if (USE_XFT)
|
||||
endif (USE_XFT)
|
||||
|
||||
if (UNIX AND OPTION_USE_WAYLAND)
|
||||
if (${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")
|
||||
if (NOT (CMAKE_VERSION VERSION_LESS 3.4))
|
||||
pkg_get_variable(PROTOCOLS wayland-protocols pkgdatadir) # requires cmake 3.4
|
||||
else()
|
||||
if (${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(
|
||||
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
|
||||
|
Loading…
Reference in New Issue
Block a user