From 76a73bb38daf1063102005a366b6ae95c7d1221f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sun, 1 Sep 2019 19:03:10 +0200 Subject: [PATCH] Platform: properly link to GLX also if Sdl2/GlfwApplication is disabled. --- src/Magnum/Platform/CMakeLists.txt | 36 +++++++++++++++++------------- 1 file changed, 21 insertions(+), 15 deletions(-) diff --git a/src/Magnum/Platform/CMakeLists.txt b/src/Magnum/Platform/CMakeLists.txt index d299cd404..78b19c444 100644 --- a/src/Magnum/Platform/CMakeLists.txt +++ b/src/Magnum/Platform/CMakeLists.txt @@ -92,17 +92,27 @@ set(MagnumPlatform_FILES ) install(FILES ${MagnumPlatform_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Platform) -# Decide about platform-specific context for cross-platform toolkits -if((WITH_GLFWAPPLICATION OR WITH_SDL2APPLICATION) AND TARGET_GL) - if(CORRADE_TARGET_APPLE AND NOT MAGNUM_TARGET_GLES) - set(NEED_CGLCONTEXT 1) - set(MagnumSomeContext_OBJECTS $) - elseif(CORRADE_TARGET_WINDOWS AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)) - set(NEED_WGLCONTEXT 1) - set(MagnumSomeContext_OBJECTS $) - elseif(CORRADE_TARGET_UNIX AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)) - set(NEED_GLXCONTEXT 1) - set(MagnumSomeContext_OBJECTS $) +if(TARGET_GL) + # Decide about platform-specific context for cross-platform toolkits + if(WITH_GLFWAPPLICATION OR WITH_SDL2APPLICATION) + if(CORRADE_TARGET_APPLE AND NOT MAGNUM_TARGET_GLES) + set(NEED_CGLCONTEXT 1) + set(MagnumSomeContext_OBJECTS $) + elseif(CORRADE_TARGET_WINDOWS AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)) + set(NEED_WGLCONTEXT 1) + set(MagnumSomeContext_OBJECTS $) + elseif(CORRADE_TARGET_UNIX AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)) + set(NEED_GLXCONTEXT 1) + set(MagnumSomeContext_OBJECTS $) + elseif(MAGNUM_TARGET_GLES AND NOT CORRADE_TARGET_EMSCRIPTEN) + set(NEED_EGLCONTEXT 1) + set(MagnumSomeContext_OBJECTS $) + # We're linking to EGL explicitly, no need to bother with GLVND there + endif() + endif() + + # This is needed also by [Windowless]GlxApplication + if((WITH_GLXAPPLICATION OR WITH_WINDOWLESSGLXAPPLICATION OR WITH_GLFWAPPLICATION OR WITH_SDL2APPLICATION) AND CORRADE_TARGET_UNIX AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)) # If the GLVND library (CMake 3.11+) was found and linked to, we need # to link to GLX explicitly. Otherwise (and also on all systems except # Linux) the transitive dependency to classic GL lib from MagnumGL is @@ -113,10 +123,6 @@ if((WITH_GLFWAPPLICATION OR WITH_SDL2APPLICATION) AND TARGET_GL) if(OPENGL_opengl_LIBRARY AND OpenGL_GL_PREFERENCE STREQUAL GLVND) set(MagnumSomeContext_LIBRARY OpenGL::GLX) endif() - elseif(MAGNUM_TARGET_GLES AND NOT CORRADE_TARGET_EMSCRIPTEN) - set(NEED_EGLCONTEXT 1) - set(MagnumSomeContext_OBJECTS $) - # We're linking to EGL explicitly, no need to bother with GLVND there endif() endif()