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:
parent
c315359c72
commit
35f2fd4be7
@ -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)
|
||||
|
@ -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)
|
||||
|
18
build/cmake/modules/FindWAYLANDEGL.cmake
Normal file
18
build/cmake/modules/FindWAYLANDEGL.cmake
Normal 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)
|
@ -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)")
|
||||
|
Loading…
Reference in New Issue
Block a user