From 442d56d47d8d80f73f8d861dd0448bc032f8e3a5 Mon Sep 17 00:00:00 2001 From: Gyusun Yeom Date: Sun, 14 Nov 2021 15:48:44 +0900 Subject: [PATCH] Fix build for non-glvnd --- CMakeLists.txt | 40 +++++++++++++++++++++++++++++++--------- 1 file changed, 31 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 87e8072..0d9d6fd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -53,12 +53,24 @@ else() set(USE_NAMESPACED_LIB NO) endif() +if(POLICY CMP0028) + cmake_policy(SET CMP0028 NEW) +endif() + if(POLICY CMP0042) cmake_policy(SET CMP0042 NEW) endif() if(POLICY CMP0072) set(OpenGL_GL_PREFERENCE GLVND) + if(NOT (WIN32 OR APPLE)) + set(USE_GLVND YES) + else() + # GLVND is not supported + set(USE_GLVND NO) + endif() +else() + set(USE_GLVND NO) endif() find_package(OpenGL REQUIRED) @@ -83,9 +95,17 @@ endif() list(APPEND pc_requires gl) if(USE_NAMESPACED_LIB) - list(APPEND LIBRARIES OpenGL::GL) + if(USE_GLVND) + list(APPEND LIBRARIES OpenGL::OpenGL) + else() + list(APPEND LIBRARIES OpenGL::GL) + endif() else() - list(APPEND LIBRARIES ${OPENGL_opengl_LIBRARY}) + if(USE_GLVND) + list(APPEND LIBRARIES ${OPENGL_opengl_LIBRARY}) + else() + list(APPEND LIBRARIES ${OPENGL_gl_LIBRARY}) + endif() endif() # OS Specific dependencies @@ -99,14 +119,16 @@ elseif(NOT WIN32) list(APPEND DEFINITIONS -DGLEW_OSMESA) list(APPEND pc_requires osmesa) else() - if(NOT OpenGL_GLX_FOUND) - message(FATAL_ERROR "GLX is not found. Try with PREFER_GLVND=NO") - endif() + if(USE_GLVND) + if(NOT OpenGL_GLX_FOUND) + message(FATAL_ERROR "GLX is not found. Try with PREFER_GLVND=NO") + endif() - if(USE_NAMESPACED_LIB) - list(APPEND LIBRARIES OpenGL::GLX) - else() - list(APPEND LIBRARIES ${OPENGL_glx_LIBRARY}) + if(USE_NAMESPACED_LIB) + list(APPEND LIBRARIES OpenGL::GLX) + else() + list(APPEND LIBRARIES ${OPENGL_glx_LIBRARY}) + endif() endif() find_package(X11 REQUIRED)