From 89d988383aa357f799ab5ad7714fce947d16dea9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 15 Sep 2018 01:25:17 +0200 Subject: [PATCH] Don't use GL-specific stuff on targets without GL enabled. --- CMakeLists.txt | 16 +++++++++------- doc/changelog.dox | 2 ++ modules/FindMagnum.cmake | 2 +- src/Magnum/ImageView.h | 2 +- src/Magnum/Magnum.h | 4 ++-- src/Magnum/PixelFormat.h | 2 +- src/Magnum/Trade/AbstractImageConverter.h | 1 - 7 files changed, 16 insertions(+), 13 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1cb28776a..907bcdff3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -213,13 +213,15 @@ if(BUILD_STATIC) endif() # Check dependencies -if(NOT TARGET_GLES OR TARGET_DESKTOP_GLES) - set(OpenGL_GL_PREFERENCE GLVND) # since CMake 3.11 - find_package(OpenGL REQUIRED) -elseif(TARGET_GLES2) - find_package(OpenGLES2 REQUIRED) -else() - find_package(OpenGLES3 REQUIRED) +if(WITH_GL) + if(NOT TARGET_GLES OR TARGET_DESKTOP_GLES) + set(OpenGL_GL_PREFERENCE GLVND) # since CMake 3.11 + find_package(OpenGL REQUIRED) + elseif(TARGET_GLES2) + find_package(OpenGLES2 REQUIRED) + else() + find_package(OpenGLES3 REQUIRED) + endif() endif() # Configuration variables (saved later to configure.h) diff --git a/doc/changelog.dox b/doc/changelog.dox index 7fa752177..5f83ebd00 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -285,6 +285,8 @@ See also: - There's now a PPA for Ubuntu packages. See @ref building-packages-deb for more information. +- Fixed various issues preventing to build and use the base libraries with + OpenGL support disabled (see [mosra/magnum#255](https://github.com/mosra/magnum/pull/255)) - Magnum now links to GLVND on Linux instead of the old libGL ABI if using CMake 3.11 and newer - @ref cmake "FindMagnum.cmake" now allows to use the @ref DebugTools library diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index d635b9919..ea5a7e981 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -327,7 +327,7 @@ if(NOT TARGET Magnum::Magnum) ${MAGNUM_INCLUDE_DIR}) # Some deprecated APIs use headers (but not externally defined symbols) # from the GL library, link those includes as well - if(MAGNUM_BUILD_DEPRECATED) + if(MAGNUM_BUILD_DEPRECATED AND MAGNUM_TARGET_GL) set_property(TARGET Magnum::Magnum APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${MAGNUM_INCLUDE_DIR}/MagnumExternal/OpenGL) endif() diff --git a/src/Magnum/ImageView.h b/src/Magnum/ImageView.h index 8d11af276..38977da5f 100644 --- a/src/Magnum/ImageView.h +++ b/src/Magnum/ImageView.h @@ -350,7 +350,7 @@ template class ImageView { */ UnsignedInt formatExtra() const { return _formatExtra; } - #ifdef MAGNUM_BUILD_DEPRECATED + #if defined(MAGNUM_BUILD_DEPRECATED) && defined(MAGNUM_TARGET_GL) /** * @brief Data type of pixel data * @deprecated Cast @ref formatExtra() to @ref GL::PixelType instead. diff --git a/src/Magnum/Magnum.h b/src/Magnum/Magnum.h index ce2cd1e4b..d7edbe859 100644 --- a/src/Magnum/Magnum.h +++ b/src/Magnum/Magnum.h @@ -34,7 +34,7 @@ #include "Magnum/Types.h" #include "Magnum/Math/Math.h" -#ifdef MAGNUM_BUILD_DEPRECATED +#if defined(MAGNUM_BUILD_DEPRECATED) && defined(MAGNUM_TARGET_GL) #include "Magnum/GL/GL.h" #endif @@ -761,7 +761,7 @@ enum class SamplerWrapping: UnsignedInt; class Timeline; -#ifdef MAGNUM_BUILD_DEPRECATED +#if defined(MAGNUM_BUILD_DEPRECATED) && defined(MAGNUM_TARGET_GL) typedef CORRADE_DEPRECATED("use GL::AbstractFramebuffer instead") GL::AbstractFramebuffer AbstractFramebuffer; #if !(defined(MAGNUM_TARGET_WEBGL) && defined(MAGNUM_TARGET_GLES2)) diff --git a/src/Magnum/PixelFormat.h b/src/Magnum/PixelFormat.h index 29d9cce8c..0af37f4c1 100644 --- a/src/Magnum/PixelFormat.h +++ b/src/Magnum/PixelFormat.h @@ -635,7 +635,7 @@ enum class PixelFormat: UnsignedInt { #endif }; -#ifdef MAGNUM_BUILD_DEPRECATED +#if defined(MAGNUM_BUILD_DEPRECATED) && defined(MAGNUM_TARGET_GL) /** @brief @copybrief GL::PixelType * @deprecated Use @ref GL::PixelType instead. */ diff --git a/src/Magnum/Trade/AbstractImageConverter.h b/src/Magnum/Trade/AbstractImageConverter.h index 17dd7aa54..745d1e843 100644 --- a/src/Magnum/Trade/AbstractImageConverter.h +++ b/src/Magnum/Trade/AbstractImageConverter.h @@ -33,7 +33,6 @@ #include #include "Magnum/Magnum.h" -#include "Magnum/GL/GL.h" #include "Magnum/Trade/Trade.h" #include "Magnum/Trade/visibility.h"