Fix linking issues with wxGLCanvasEGL for cmake

1) Link with EGL and wayland-egl libraries (with check for GDK Wayland).
2) Provide a way to force disable the EGL backend.
This commit is contained in:
Scott Talbert 2020-09-12 09:48:54 -04:00 committed by paulcor
parent c315359c72
commit 35f2fd4be7
4 changed files with 32 additions and 2 deletions

View File

@ -385,14 +385,21 @@ if(wxUSE_GUI)
set(OPENGL_LIBRARIES "-framework OpenGLES" "-framework QuartzCore")
else()
find_package(OpenGL)
if(WXGTK3 AND OpenGL_EGL_FOUND)
set(wxUSE_GLCANVAS_EGL ON)
if(WXGTK3 AND OpenGL_EGL_FOUND AND wxUSE_GLCANVAS_EGL)
set(OPENGL_LIBRARIES OpenGL::OpenGL OpenGL::EGL)
find_package(WAYLANDEGL)
if(WAYLANDEGL_FOUND AND wxHAVE_GDK_WAYLAND)
list(APPEND OPENGL_LIBRARIES ${WAYLANDEGL_LIBRARIES})
endif()
endif()
endif()
if(NOT OPENGL_FOUND)
message(WARNING "opengl not found, wxGLCanvas won't be available")
wx_option_force_value(wxUSE_OPENGL OFF)
endif()
if(UNIX AND NOT OpenGL_EGL_FOUND)
wx_option_force_value(wxUSE_GLCANVAS_EGL OFF)
endif()
endif()
if(wxUSE_WEBVIEW)

View File

@ -42,5 +42,9 @@ set(VERSION_OK FALSE)
endif ()
endif ()
endif ()
# Check for GDK Wayland support
include(CheckSymbolExists)
set(CMAKE_REQUIRED_INCLUDES ${GTK3_INCLUDE_DIRS})
check_symbol_exists(GDK_WINDOWING_WAYLAND "gdk/gdk.h" wxHAVE_GDK_WAYLAND)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GTK3 DEFAULT_MSG GTK3_INCLUDE_DIRS GTK3_LIBRARIES VERSION_OK)

View File

@ -0,0 +1,18 @@
find_package(PkgConfig)
pkg_check_modules(WAYLANDEGL QUIET wayland-egl)
set(VERSION_OK TRUE)
if (WAYLANDEGL_VERSION)
if (WAYLANDEGL_FIND_VERSION_EXACT)
if (NOT("${WAYLANDEGL_FIND_VERSION}" VERSION_EQUAL "${WAYLANDEGL_VERSION}"))
set(VERSION_OK FALSE)
endif ()
else ()
if ("${WAYLANDEGL_VERSION}" VERSION_LESS "${WAYLANDEGL_FIND_VERSION}")
set(VERSION_OK FALSE)
endif ()
endif ()
endif ()
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(WAYLANDEGL DEFAULT_MSG WAYLANDEGL_LIBRARIES VERSION_OK)

View File

@ -109,6 +109,7 @@ if(UNIX)
wx_option(wxUSE_XTEST "use XTest extension")
wx_option(wxUSE_LIBMSPACK "use libmspack (CHM help files loading)")
wx_option(wxUSE_LIBGNOMEVFS "use GNOME VFS for associating MIME types")
wx_option(wxUSE_GLCANVAS_EGL "use EGL backend for wxGLCanvas")
set(wxTHIRD_PARTY_LIBRARIES ${wxTHIRD_PARTY_LIBRARIES} wxUSE_LIBSDL "use SDL for audio on Unix")
set(wxTHIRD_PARTY_LIBRARIES ${wxTHIRD_PARTY_LIBRARIES} wxUSE_LIBMSPACK "use libmspack (CHM help files loading)")