From 9ff298b84f93b0a9629b262b72a7ed4daa8dd4f1 Mon Sep 17 00:00:00 2001 From: Squareys Date: Sat, 23 Jun 2018 22:05:31 +0200 Subject: [PATCH] Install External/OpenGL when building deprecated even without GL Some deprecated APIs use headers (but not externally defined symbols) from the GL library, link those includes as well Signed-off-by: Squareys --- src/Magnum/CMakeLists.txt | 6 ++++-- src/MagnumExternal/CMakeLists.txt | 5 ++++- src/MagnumExternal/OpenGL/GL/CMakeLists.txt | 23 +++++++++++++-------- 3 files changed, 22 insertions(+), 12 deletions(-) diff --git a/src/Magnum/CMakeLists.txt b/src/Magnum/CMakeLists.txt index dfa75b48c..6ca63f840 100644 --- a/src/Magnum/CMakeLists.txt +++ b/src/Magnum/CMakeLists.txt @@ -185,7 +185,9 @@ endif() target_include_directories(Magnum PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) -if(BUILD_DEPRECATED AND TARGET_GL) # TODO: remove once compat gets dropped +if(BUILD_DEPRECATED) # TODO: remove once compat gets dropped + # Some deprecated APIs use headers (but not externally defined symbols) + # from the GL library, link those includes as well target_include_directories(Magnum PUBLIC ${PROJECT_SOURCE_DIR}/src/MagnumExternal/OpenGL) endif() @@ -272,7 +274,7 @@ if(BUILD_TESTS) target_include_directories(MagnumTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src ${PROJECT_BINARY_DIR}/src) - if(BUILD_DEPRECATED AND TARGET_GL) # TODO: remove once compat gets dropped + if(BUILD_DEPRECATED) # TODO: remove once compat gets dropped target_include_directories(MagnumTestLib PUBLIC ${PROJECT_SOURCE_DIR}/src/MagnumExternal/OpenGL) endif() diff --git a/src/MagnumExternal/CMakeLists.txt b/src/MagnumExternal/CMakeLists.txt index 211f3ad63..648f729e5 100644 --- a/src/MagnumExternal/CMakeLists.txt +++ b/src/MagnumExternal/CMakeLists.txt @@ -26,7 +26,10 @@ if(WITH_AUDIO) add_subdirectory(OpenAL) endif() -if(WITH_GL) +# Some deprecated APIs use headers (but not externally defined symbols) +# from the GL library, link those includes as well +# TODO: remove once compat gets dropped +if(WITH_GL OR MAGNUM_BUILD_DEPRECATED) add_subdirectory(OpenGL) endif() if(WITH_VK) diff --git a/src/MagnumExternal/OpenGL/GL/CMakeLists.txt b/src/MagnumExternal/OpenGL/GL/CMakeLists.txt index 6bc5c6edc..e58bb2e72 100644 --- a/src/MagnumExternal/OpenGL/GL/CMakeLists.txt +++ b/src/MagnumExternal/OpenGL/GL/CMakeLists.txt @@ -23,15 +23,20 @@ # DEALINGS IN THE SOFTWARE. # -# flextGLPlatform.cpp is compiled as part of Magnum*Context libraries in Platform -add_library(MagnumFlextGLObjects OBJECT flextGL.cpp) -target_include_directories(MagnumFlextGLObjects PUBLIC $) -if(NOT BUILD_STATIC) - target_compile_definitions(MagnumFlextGLObjects PRIVATE "FlextGL_EXPORTS") +# Some deprecated APIs use headers (but not externally defined symbols) +# from the GL library, link those includes as well +# TODO: remove once compat gets dropped (condition only) +if(WITH_GL) + # flextGLPlatform.cpp is compiled as part of Magnum*Context libraries in Platform + add_library(MagnumFlextGLObjects OBJECT flextGL.cpp) + target_include_directories(MagnumFlextGLObjects PUBLIC $) + if(NOT BUILD_STATIC) + target_compile_definitions(MagnumFlextGLObjects PRIVATE "FlextGL_EXPORTS") + endif() + if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) + set_target_properties(MagnumFlextGLObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) + endif() + set_target_properties(MagnumFlextGLObjects PROPERTIES FOLDER "MagnumExternal/OpenGL") endif() -if(NOT BUILD_STATIC OR BUILD_STATIC_PIC) - set_target_properties(MagnumFlextGLObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) -endif() -set_target_properties(MagnumFlextGLObjects PROPERTIES FOLDER "MagnumExternal/OpenGL") install(FILES flextGL.h DESTINATION ${MAGNUM_EXTERNAL_INCLUDE_INSTALL_DIR}/OpenGL/GL)