Update CMake Find* modules.
This commit is contained in:
parent
ecdf7d736f
commit
a1a155d0ac
5 changed files with 132 additions and 92 deletions
|
@ -16,6 +16,8 @@
|
||||||
# components, which are:
|
# components, which are:
|
||||||
#
|
#
|
||||||
# Containers - Containers library
|
# Containers - Containers library
|
||||||
|
# Interconnect - Interconnect library
|
||||||
|
# Main - Main library
|
||||||
# PluginManager - PluginManager library
|
# PluginManager - PluginManager library
|
||||||
# TestSuite - TestSuite library
|
# TestSuite - TestSuite library
|
||||||
# Utility - Utility library
|
# Utility - Utility library
|
||||||
|
@ -68,7 +70,7 @@
|
||||||
# mode for MSVC 2017
|
# mode for MSVC 2017
|
||||||
# CORRADE_MSVC2015_COMPATIBILITY - Defined if compiled with compatibility
|
# CORRADE_MSVC2015_COMPATIBILITY - Defined if compiled with compatibility
|
||||||
# mode for MSVC 2015
|
# mode for MSVC 2015
|
||||||
# CORRADE_BUILD_DEPRECATED - Defined if compiled with deprecated APIs
|
# CORRADE_BUILD_DEPRECATED - Defined if compiled with deprecated features
|
||||||
# included
|
# included
|
||||||
# CORRADE_BUILD_STATIC - Defined if compiled as static libraries.
|
# CORRADE_BUILD_STATIC - Defined if compiled as static libraries.
|
||||||
# Default are shared libraries.
|
# Default are shared libraries.
|
||||||
|
@ -78,6 +80,9 @@
|
||||||
# CORRADE_BUILD_MULTITHREADED - Defined if compiled in a way that makes it
|
# CORRADE_BUILD_MULTITHREADED - Defined if compiled in a way that makes it
|
||||||
# possible to safely use certain Corrade features simultaneously in multiple
|
# possible to safely use certain Corrade features simultaneously in multiple
|
||||||
# threads
|
# threads
|
||||||
|
# CORRADE_BUILD_CPU_RUNTIME_DISPATCH - Defined if built with code paths
|
||||||
|
# optimized for multiple architectres with the best matching variant selected
|
||||||
|
# at runtime based on detected CPU features
|
||||||
# CORRADE_TARGET_UNIX - Defined if compiled for some Unix flavor
|
# CORRADE_TARGET_UNIX - Defined if compiled for some Unix flavor
|
||||||
# (Linux, BSD, macOS)
|
# (Linux, BSD, macOS)
|
||||||
# CORRADE_TARGET_APPLE - Defined if compiled for Apple platforms
|
# CORRADE_TARGET_APPLE - Defined if compiled for Apple platforms
|
||||||
|
@ -98,6 +103,8 @@
|
||||||
# CORRADE_TARGET_MSVC - Defined if compiling with MSVC or Clang with
|
# CORRADE_TARGET_MSVC - Defined if compiling with MSVC or Clang with
|
||||||
# a MSVC frontend
|
# a MSVC frontend
|
||||||
# CORRADE_TARGET_MINGW - Defined if compiling under MinGW
|
# CORRADE_TARGET_MINGW - Defined if compiling under MinGW
|
||||||
|
# CORRADE_CPU_USE_IFUNC - Defined if GNU IFUNC is allowed to be used
|
||||||
|
# for runtime dispatch in the Cpu library
|
||||||
# CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT - Defined if PluginManager
|
# CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT - Defined if PluginManager
|
||||||
# doesn't support dynamic plugin loading due to platform limitations
|
# doesn't support dynamic plugin loading due to platform limitations
|
||||||
# CORRADE_TESTSUITE_TARGET_XCTEST - Defined if TestSuite is targeting Xcode
|
# CORRADE_TESTSUITE_TARGET_XCTEST - Defined if TestSuite is targeting Xcode
|
||||||
|
@ -208,7 +215,7 @@
|
||||||
# <metadata file>
|
# <metadata file>
|
||||||
# <sources>...)
|
# <sources>...)
|
||||||
#
|
#
|
||||||
# Unline the above version this puts everything into ``<debug install dir>`` on
|
# Unlike the above version this puts everything into ``<debug install dir>`` on
|
||||||
# both DLL and non-DLL platforms. If ``<debug install dir>`` is set to
|
# both DLL and non-DLL platforms. If ``<debug install dir>`` is set to
|
||||||
# :variable:`CMAKE_CURRENT_BINARY_DIR` (e.g. for testing purposes), the files
|
# :variable:`CMAKE_CURRENT_BINARY_DIR` (e.g. for testing purposes), the files
|
||||||
# are copied directly, without the need to perform install step. Note that the
|
# are copied directly, without the need to perform install step. Note that the
|
||||||
|
@ -264,7 +271,7 @@
|
||||||
# This file is part of Corrade.
|
# This file is part of Corrade.
|
||||||
#
|
#
|
||||||
# Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
|
# Copyright © 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016,
|
||||||
# 2017, 2018, 2019, 2020, 2021, 2022
|
# 2017, 2018, 2019, 2020, 2021, 2022, 2023
|
||||||
# Vladimír Vondruš <mosra@centrum.cz>
|
# Vladimír Vondruš <mosra@centrum.cz>
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
@ -317,6 +324,7 @@ set(_corradeFlags
|
||||||
BUILD_STATIC
|
BUILD_STATIC
|
||||||
BUILD_STATIC_UNIQUE_GLOBALS
|
BUILD_STATIC_UNIQUE_GLOBALS
|
||||||
BUILD_MULTITHREADED
|
BUILD_MULTITHREADED
|
||||||
|
BUILD_CPU_RUNTIME_DISPATCH
|
||||||
TARGET_UNIX
|
TARGET_UNIX
|
||||||
TARGET_APPLE
|
TARGET_APPLE
|
||||||
TARGET_IOS
|
TARGET_IOS
|
||||||
|
@ -325,10 +333,12 @@ set(_corradeFlags
|
||||||
TARGET_WINDOWS_RT
|
TARGET_WINDOWS_RT
|
||||||
TARGET_EMSCRIPTEN
|
TARGET_EMSCRIPTEN
|
||||||
TARGET_ANDROID
|
TARGET_ANDROID
|
||||||
# TARGET_X86 etc and TARGET_LIBCXX are not exposed to CMake as the meaning
|
# TARGET_X86 etc, TARGET_32BIT, TARGET_BIG_ENDIAN and TARGET_LIBCXX etc.
|
||||||
# is unclear on platforms with multi-arch binaries or when mixing different
|
# are not exposed to CMake as the meaning is unclear on platforms with
|
||||||
# STL implementations. TARGET_GCC etc are figured out via UseCorrade.cmake,
|
# multi-arch binaries or when mixing different STL implementations.
|
||||||
# as the compiler can be different when compiling the lib & when using it.
|
# TARGET_GCC etc are figured out via UseCorrade.cmake, as the compiler can
|
||||||
|
# be different when compiling the lib & when using it.
|
||||||
|
CPU_USE_IFUNC
|
||||||
PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT
|
PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT
|
||||||
TESTSUITE_TARGET_XCTEST
|
TESTSUITE_TARGET_XCTEST
|
||||||
UTILITY_USE_ANSI_COLORS)
|
UTILITY_USE_ANSI_COLORS)
|
||||||
|
@ -406,6 +416,8 @@ foreach(_component ${Corrade_FIND_COMPONENTS})
|
||||||
if(TARGET Corrade::${_component})
|
if(TARGET Corrade::${_component})
|
||||||
set(Corrade_${_component}_FOUND TRUE)
|
set(Corrade_${_component}_FOUND TRUE)
|
||||||
else()
|
else()
|
||||||
|
unset(Corrade_${_component}_FOUND)
|
||||||
|
|
||||||
# Library (and not header-only) components
|
# Library (and not header-only) components
|
||||||
if(_component IN_LIST _CORRADE_LIBRARY_COMPONENTS AND NOT _component IN_LIST _CORRADE_HEADER_ONLY_COMPONENTS)
|
if(_component IN_LIST _CORRADE_LIBRARY_COMPONENTS AND NOT _component IN_LIST _CORRADE_HEADER_ONLY_COMPONENTS)
|
||||||
add_library(Corrade::${_component} UNKNOWN IMPORTED)
|
add_library(Corrade::${_component} UNKNOWN IMPORTED)
|
||||||
|
@ -496,25 +508,33 @@ foreach(_component ${Corrade_FIND_COMPONENTS})
|
||||||
elseif(_component STREQUAL PluginManager)
|
elseif(_component STREQUAL PluginManager)
|
||||||
# -ldl is handled by Utility now
|
# -ldl is handled by Utility now
|
||||||
|
|
||||||
# TestSuite library has some additional files
|
# TestSuite library has some additional files. If those are not found,
|
||||||
|
# set the component _FOUND variable to false so it works properly both
|
||||||
|
# when the component is required and when it's optional.
|
||||||
elseif(_component STREQUAL TestSuite)
|
elseif(_component STREQUAL TestSuite)
|
||||||
# XCTest runner file
|
# XCTest runner file
|
||||||
if(CORRADE_TESTSUITE_TARGET_XCTEST)
|
if(CORRADE_TESTSUITE_TARGET_XCTEST)
|
||||||
find_file(CORRADE_TESTSUITE_XCTEST_RUNNER XCTestRunner.mm.in
|
find_file(CORRADE_TESTSUITE_XCTEST_RUNNER XCTestRunner.mm.in
|
||||||
PATH_SUFFIXES share/corrade/TestSuite)
|
PATH_SUFFIXES share/corrade/TestSuite)
|
||||||
set(CORRADE_TESTSUITE_XCTEST_RUNNER_NEEDED CORRADE_TESTSUITE_XCTEST_RUNNER)
|
if(NOT CORRADE_TESTSUITE_XCTEST_RUNNER)
|
||||||
|
set(Corrade_${_component}_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
# ADB runner file
|
# ADB runner file
|
||||||
elseif(CORRADE_TARGET_ANDROID)
|
elseif(CORRADE_TARGET_ANDROID)
|
||||||
find_file(CORRADE_TESTSUITE_ADB_RUNNER AdbRunner.sh
|
find_file(CORRADE_TESTSUITE_ADB_RUNNER AdbRunner.sh
|
||||||
PATH_SUFFIXES share/corrade/TestSuite)
|
PATH_SUFFIXES share/corrade/TestSuite)
|
||||||
set(CORRADE_TESTSUITE_ADB_RUNNER_NEEDED CORRADE_TESTSUITE_ADB_RUNNER)
|
if(NOT CORRADE_TESTSUITE_ADB_RUNNER)
|
||||||
|
set(Corrade_${_component}_FOUND FALSE)
|
||||||
|
endif()
|
||||||
|
|
||||||
# Emscripten runner file
|
# Emscripten runner file
|
||||||
elseif(CORRADE_TARGET_EMSCRIPTEN)
|
elseif(CORRADE_TARGET_EMSCRIPTEN)
|
||||||
find_file(CORRADE_TESTSUITE_EMSCRIPTEN_RUNNER EmscriptenRunner.html.in
|
find_file(CORRADE_TESTSUITE_EMSCRIPTEN_RUNNER EmscriptenRunner.html.in
|
||||||
PATH_SUFFIXES share/corrade/TestSuite)
|
PATH_SUFFIXES share/corrade/TestSuite)
|
||||||
set(CORRADE_TESTSUITE_EMSCRIPTEN_RUNNER_NEEDED CORRADE_TESTSUITE_EMSCRIPTEN_RUNNER)
|
if(NOT CORRADE_TESTSUITE_EMSCRIPTEN_RUNNER)
|
||||||
|
set(Corrade_${_component}_FOUND FALSE)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Utility library (contains all setup that is used by others)
|
# Utility library (contains all setup that is used by others)
|
||||||
|
@ -559,13 +579,16 @@ foreach(_component ${Corrade_FIND_COMPONENTS})
|
||||||
endforeach()
|
endforeach()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Decide if the component was found
|
# Decide if the component was found, unless the _FOUND is already set
|
||||||
|
# by something above.
|
||||||
|
if(NOT DEFINED Corrade_${_component}_FOUND)
|
||||||
if((_component IN_LIST _CORRADE_LIBRARY_COMPONENTS AND _CORRADE_${_COMPONENT}_INCLUDE_DIR AND (_component IN_LIST _CORRADE_HEADER_ONLY_COMPONENTS OR CORRADE_${_COMPONENT}_LIBRARY_RELEASE OR CORRADE_${_COMPONENT}_LIBRARY_DEBUG)) OR (_component IN_LIST _CORRADE_EXECUTABLE_COMPONENTS AND CORRADE_${_COMPONENT}_EXECUTABLE))
|
if((_component IN_LIST _CORRADE_LIBRARY_COMPONENTS AND _CORRADE_${_COMPONENT}_INCLUDE_DIR AND (_component IN_LIST _CORRADE_HEADER_ONLY_COMPONENTS OR CORRADE_${_COMPONENT}_LIBRARY_RELEASE OR CORRADE_${_COMPONENT}_LIBRARY_DEBUG)) OR (_component IN_LIST _CORRADE_EXECUTABLE_COMPONENTS AND CORRADE_${_COMPONENT}_EXECUTABLE))
|
||||||
set(Corrade_${_component}_FOUND TRUE)
|
set(Corrade_${_component}_FOUND TRUE)
|
||||||
else()
|
else()
|
||||||
set(Corrade_${_component}_FOUND FALSE)
|
set(Corrade_${_component}_FOUND FALSE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# For CMake 3.16+ with REASON_FAILURE_MESSAGE, provide additional potentially
|
# For CMake 3.16+ with REASON_FAILURE_MESSAGE, provide additional potentially
|
||||||
|
@ -590,7 +613,7 @@ if(NOT CMAKE_VERSION VERSION_LESS 3.16)
|
||||||
# misleading messages.
|
# misleading messages.
|
||||||
elseif(NOT _component IN_LIST _CORRADE_IMPLICITLY_ENABLED_COMPONENTS)
|
elseif(NOT _component IN_LIST _CORRADE_IMPLICITLY_ENABLED_COMPONENTS)
|
||||||
string(TOUPPER ${_component} _COMPONENT)
|
string(TOUPPER ${_component} _COMPONENT)
|
||||||
list(APPEND _CORRADE_REASON_FAILURE_MESSAGE "${_component} is not built by default. Make sure you enabled WITH_${_COMPONENT} when building Corrade.")
|
list(APPEND _CORRADE_REASON_FAILURE_MESSAGE "${_component} is not built by default. Make sure you enabled CORRADE_WITH_${_COMPONENT} when building Corrade.")
|
||||||
# Otherwise we have no idea. Better be silent than to print something
|
# Otherwise we have no idea. Better be silent than to print something
|
||||||
# misleading.
|
# misleading.
|
||||||
else()
|
else()
|
||||||
|
@ -606,9 +629,6 @@ find_package_handle_standard_args(Corrade REQUIRED_VARS
|
||||||
CORRADE_INCLUDE_DIR
|
CORRADE_INCLUDE_DIR
|
||||||
_CORRADE_MODULE_DIR
|
_CORRADE_MODULE_DIR
|
||||||
_CORRADE_CONFIGURE_FILE
|
_CORRADE_CONFIGURE_FILE
|
||||||
${CORRADE_TESTSUITE_XCTEST_RUNNER_NEEDED}
|
|
||||||
${CORRADE_TESTSUITE_ADB_RUNNER_NEEDED}
|
|
||||||
${CORRADE_TESTSUITE_EMSCRIPTEN_RUNNER_NEEDED}
|
|
||||||
HANDLE_COMPONENTS
|
HANDLE_COMPONENTS
|
||||||
${_CORRADE_REASON_FAILURE_MESSAGE})
|
${_CORRADE_REASON_FAILURE_MESSAGE})
|
||||||
|
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
# This file is part of Magnum.
|
# This file is part of Magnum.
|
||||||
#
|
#
|
||||||
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
||||||
# 2020, 2021, 2022 Vladimír Vondruš <mosra@centrum.cz>
|
# 2020, 2021, 2022, 2023 Vladimír Vondruš <mosra@centrum.cz>
|
||||||
# Copyright © 2018 Jonathan Hale <squareys@googlemail.com>
|
# Copyright © 2018 Jonathan Hale <squareys@googlemail.com>
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
|
|
@ -57,6 +57,7 @@
|
||||||
# Audio - Audio library
|
# Audio - Audio library
|
||||||
# DebugTools - DebugTools library
|
# DebugTools - DebugTools library
|
||||||
# GL - GL library
|
# GL - GL library
|
||||||
|
# MaterialTools - MaterialTools library
|
||||||
# MeshTools - MeshTools library
|
# MeshTools - MeshTools library
|
||||||
# Primitives - Primitives library
|
# Primitives - Primitives library
|
||||||
# SceneGraph - SceneGraph library
|
# SceneGraph - SceneGraph library
|
||||||
|
@ -78,7 +79,6 @@
|
||||||
# WindowlessGlxApplication - Windowless GLX application
|
# WindowlessGlxApplication - Windowless GLX application
|
||||||
# WindowlessIosApplication - Windowless iOS application
|
# WindowlessIosApplication - Windowless iOS application
|
||||||
# WindowlessWglApplication - Windowless WGL application
|
# WindowlessWglApplication - Windowless WGL application
|
||||||
# WindowlessWindowsEglApplication - Windowless Windows/EGL application
|
|
||||||
# CglContext - CGL context
|
# CglContext - CGL context
|
||||||
# EglContext - EGL context
|
# EglContext - EGL context
|
||||||
# GlxContext - GLX context
|
# GlxContext - GLX context
|
||||||
|
@ -128,7 +128,7 @@
|
||||||
#
|
#
|
||||||
# Features of found Magnum library are exposed in these variables:
|
# Features of found Magnum library are exposed in these variables:
|
||||||
#
|
#
|
||||||
# MAGNUM_BUILD_DEPRECATED - Defined if compiled with deprecated APIs
|
# MAGNUM_BUILD_DEPRECATED - Defined if compiled with deprecated features
|
||||||
# included
|
# included
|
||||||
# MAGNUM_BUILD_STATIC - Defined if compiled as static libraries
|
# MAGNUM_BUILD_STATIC - Defined if compiled as static libraries
|
||||||
# MAGNUM_BUILD_STATIC_UNIQUE_GLOBALS - Defined if static libraries keep the
|
# MAGNUM_BUILD_STATIC_UNIQUE_GLOBALS - Defined if static libraries keep the
|
||||||
|
@ -137,10 +137,9 @@
|
||||||
# MAGNUM_TARGET_GLES - Defined if compiled for OpenGL ES
|
# MAGNUM_TARGET_GLES - Defined if compiled for OpenGL ES
|
||||||
# MAGNUM_TARGET_GLES2 - Defined if compiled for OpenGL ES 2.0
|
# MAGNUM_TARGET_GLES2 - Defined if compiled for OpenGL ES 2.0
|
||||||
# MAGNUM_TARGET_GLES3 - Defined if compiled for OpenGL ES 3.0
|
# MAGNUM_TARGET_GLES3 - Defined if compiled for OpenGL ES 3.0
|
||||||
# MAGNUM_TARGET_DESKTOP_GLES - Defined if compiled with OpenGL ES
|
|
||||||
# emulation on desktop OpenGL
|
|
||||||
# MAGNUM_TARGET_WEBGL - Defined if compiled for WebGL
|
# MAGNUM_TARGET_WEBGL - Defined if compiled for WebGL
|
||||||
# MAGNUM_TARGET_HEADLESS - Defined if compiled for headless machines
|
# MAGNUM_TARGET_EGL - Defined if compiled for EGL instead of a
|
||||||
|
# platform-specific OpenGL support library like CGL, EAGL, GLX or WGL
|
||||||
# MAGNUM_TARGET_VK - Defined if compiled with Vulkan interop
|
# MAGNUM_TARGET_VK - Defined if compiled with Vulkan interop
|
||||||
#
|
#
|
||||||
# The following variables are provided for backwards compatibility purposes
|
# The following variables are provided for backwards compatibility purposes
|
||||||
|
@ -149,6 +148,10 @@
|
||||||
#
|
#
|
||||||
# MAGNUM_BUILD_MULTITHREADED - Alias to CORRADE_BUILD_MULTITHREADED. Use
|
# MAGNUM_BUILD_MULTITHREADED - Alias to CORRADE_BUILD_MULTITHREADED. Use
|
||||||
# CORRADE_BUILD_MULTITHREADED instead.
|
# CORRADE_BUILD_MULTITHREADED instead.
|
||||||
|
# MAGNUM_TARGET_HEADLESS - Alias to MAGNUM_TARGET_EGL, unless on iOS,
|
||||||
|
# Android, Emscripten or Windows RT. Use MAGNUM_TARGET_EGL instead.
|
||||||
|
# MAGNUM_TARGET_DESKTOP_GLES` - Defined if compiled for OpenGL ES but
|
||||||
|
# GLX / WGL is used instead of EGL. Use MAGNUM_TARGET_EGL instead.
|
||||||
#
|
#
|
||||||
# Additionally these variables are defined for internal usage:
|
# Additionally these variables are defined for internal usage:
|
||||||
#
|
#
|
||||||
|
@ -202,7 +205,7 @@
|
||||||
# This file is part of Magnum.
|
# This file is part of Magnum.
|
||||||
#
|
#
|
||||||
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
||||||
# 2020, 2021, 2022 Vladimír Vondruš <mosra@centrum.cz>
|
# 2020, 2021, 2022, 2023 Vladimír Vondruš <mosra@centrum.cz>
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
# copy of this software and associated documentation files (the "Software"),
|
# copy of this software and associated documentation files (the "Software"),
|
||||||
|
@ -225,16 +228,26 @@
|
||||||
|
|
||||||
# Corrade library dependencies
|
# Corrade library dependencies
|
||||||
set(_MAGNUM_CORRADE_DEPENDENCIES )
|
set(_MAGNUM_CORRADE_DEPENDENCIES )
|
||||||
foreach(_component ${Magnum_FIND_COMPONENTS})
|
foreach(_magnum_component ${Magnum_FIND_COMPONENTS})
|
||||||
string(TOUPPER ${_component} _COMPONENT)
|
set(_MAGNUM_${_magnum_component}_CORRADE_DEPENDENCIES )
|
||||||
|
|
||||||
# Unrolling the transitive dependencies here so this doesn't need to be
|
# Unrolling the transitive dependencies here so this doesn't need to be
|
||||||
# after resolving inter-component dependencies. Listing also all plugins.
|
# after resolving inter-component dependencies. Listing also all plugins.
|
||||||
if(_component MATCHES "^(Audio|DebugTools|MeshTools|Primitives|SceneTools|ShaderTools|Text|TextureTools|Trade|.+Importer|.+ImageConverter|.+Font|.+ShaderConverter)$")
|
if(_magnum_component MATCHES "^(Audio|DebugTools|MeshTools|Primitives|SceneTools|ShaderTools|Text|TextureTools|Trade|.+Importer|.+ImageConverter|.+Font|.+ShaderConverter)$")
|
||||||
set(_MAGNUM_${_COMPONENT}_CORRADE_DEPENDENCIES PluginManager)
|
list(APPEND _MAGNUM_${_magnum_component}_CORRADE_DEPENDENCIES PluginManager)
|
||||||
|
endif()
|
||||||
|
if(_magnum_component STREQUAL DebugTools)
|
||||||
|
# DebugTools depends on TestSuite optionally, so if it's not there
|
||||||
|
# assume it wasn't compiled against it. Also, all variables from the
|
||||||
|
# FindCorrade module overwrite the local variables here (in particular
|
||||||
|
# _component, _COMPONENT and such), so we need to prefix extensively.
|
||||||
|
find_package(Corrade QUIET COMPONENTS TestSuite)
|
||||||
|
if(Corrade_TestSuite_FOUND)
|
||||||
|
list(APPEND _MAGNUM_${_magnum_component}_CORRADE_DEPENDENCIES TestSuite)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
list(APPEND _MAGNUM_CORRADE_DEPENDENCIES ${_MAGNUM_${_COMPONENT}_CORRADE_DEPENDENCIES})
|
list(APPEND _MAGNUM_CORRADE_DEPENDENCIES ${_MAGNUM_${_magnum_component}_CORRADE_DEPENDENCIES})
|
||||||
endforeach()
|
endforeach()
|
||||||
find_package(Corrade REQUIRED Utility ${_MAGNUM_CORRADE_DEPENDENCIES})
|
find_package(Corrade REQUIRED Utility ${_MAGNUM_CORRADE_DEPENDENCIES})
|
||||||
|
|
||||||
|
@ -269,9 +282,8 @@ set(_magnumFlags
|
||||||
TARGET_GLES
|
TARGET_GLES
|
||||||
TARGET_GLES2
|
TARGET_GLES2
|
||||||
TARGET_GLES3
|
TARGET_GLES3
|
||||||
TARGET_DESKTOP_GLES
|
|
||||||
TARGET_WEBGL
|
TARGET_WEBGL
|
||||||
TARGET_HEADLESS
|
TARGET_EGL
|
||||||
TARGET_VK)
|
TARGET_VK)
|
||||||
foreach(_magnumFlag ${_magnumFlags})
|
foreach(_magnumFlag ${_magnumFlags})
|
||||||
list(FIND _magnumConfigure "#define MAGNUM_${_magnumFlag}" _magnum_${_magnumFlag})
|
list(FIND _magnumConfigure "#define MAGNUM_${_magnumFlag}" _magnum_${_magnumFlag})
|
||||||
|
@ -280,9 +292,20 @@ foreach(_magnumFlag ${_magnumFlags})
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# For compatibility only, to be removed at some point
|
# For compatibility only, to be removed at some point. Refer to
|
||||||
if(MAGNUM_BUILD_DEPRECATED AND CORRADE_BUILD_MULTITHREADED)
|
# src/Magnum/configure.h.cmake for the decision logic here.
|
||||||
|
if(MAGNUM_BUILD_DEPRECATED)
|
||||||
|
if(CORRADE_BUILD_MULTITHREADED)
|
||||||
set(MAGNUM_BUILD_MULTITHREADED 1)
|
set(MAGNUM_BUILD_MULTITHREADED 1)
|
||||||
|
endif()
|
||||||
|
if(NOT CORRADE_TARGET_IOS AND NOT CORRADE_TARGET_ANDROID AND NOT CORRADE_TARGET_EMSCRIPTEN AND NOT CORRADE_TARGET_WINDOWS_RT)
|
||||||
|
if(NOT MAGNUM_TARGET_GLES AND MAGNUM_TARGET_EGL)
|
||||||
|
set(MAGNUM_TARGET_HEADLESS 1)
|
||||||
|
endif()
|
||||||
|
if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_EGL)
|
||||||
|
set(MAGNUM_TARGET_DESKTOP_GLES 1)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# OpenGL library preference. Prefer to use GLVND, since that's the better
|
# OpenGL library preference. Prefer to use GLVND, since that's the better
|
||||||
|
@ -355,8 +378,8 @@ endif()
|
||||||
# Component distinction (listing them explicitly to avoid mistakes with finding
|
# Component distinction (listing them explicitly to avoid mistakes with finding
|
||||||
# components from other repositories)
|
# components from other repositories)
|
||||||
set(_MAGNUM_LIBRARY_COMPONENTS
|
set(_MAGNUM_LIBRARY_COMPONENTS
|
||||||
Audio DebugTools GL MeshTools Primitives SceneGraph SceneTools Shaders
|
Audio DebugTools GL MaterialTools MeshTools Primitives SceneGraph
|
||||||
ShaderTools Text TextureTools Trade
|
SceneTools Shaders ShaderTools Text TextureTools Trade
|
||||||
WindowlessEglApplication EglContext OpenGLTester)
|
WindowlessEglApplication EglContext OpenGLTester)
|
||||||
set(_MAGNUM_PLUGIN_COMPONENTS
|
set(_MAGNUM_PLUGIN_COMPONENTS
|
||||||
AnyAudioImporter AnyImageConverter AnyImageImporter AnySceneConverter
|
AnyAudioImporter AnyImageConverter AnyImageImporter AnySceneConverter
|
||||||
|
@ -395,7 +418,7 @@ if(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE)
|
||||||
list(APPEND _MAGNUM_LIBRARY_COMPONENTS GlxApplication XEglApplication WindowlessGlxApplication GlxContext)
|
list(APPEND _MAGNUM_LIBRARY_COMPONENTS GlxApplication XEglApplication WindowlessGlxApplication GlxContext)
|
||||||
endif()
|
endif()
|
||||||
if(CORRADE_TARGET_WINDOWS)
|
if(CORRADE_TARGET_WINDOWS)
|
||||||
list(APPEND _MAGNUM_LIBRARY_COMPONENTS WindowlessWglApplication WglContext WindowlessWindowsEglApplication)
|
list(APPEND _MAGNUM_LIBRARY_COMPONENTS WindowlessWglApplication WglContext)
|
||||||
endif()
|
endif()
|
||||||
if(CORRADE_TARGET_UNIX OR CORRADE_TARGET_WINDOWS)
|
if(CORRADE_TARGET_UNIX OR CORRADE_TARGET_WINDOWS)
|
||||||
list(APPEND _MAGNUM_EXECUTABLE_COMPONENTS fontconverter distancefieldconverter)
|
list(APPEND _MAGNUM_EXECUTABLE_COMPONENTS fontconverter distancefieldconverter)
|
||||||
|
@ -420,30 +443,24 @@ if(MAGNUM_TARGET_GL)
|
||||||
set(_MAGNUM_DebugTools_GL_DEPENDENCY_IS_OPTIONAL ON)
|
set(_MAGNUM_DebugTools_GL_DEPENDENCY_IS_OPTIONAL ON)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(_MAGNUM_MaterialTools_DEPENDENCIES Trade)
|
||||||
|
|
||||||
set(_MAGNUM_MeshTools_DEPENDENCIES Trade)
|
set(_MAGNUM_MeshTools_DEPENDENCIES Trade)
|
||||||
if(MAGNUM_TARGET_GL)
|
if(MAGNUM_TARGET_GL)
|
||||||
list(APPEND _MAGNUM_MeshTools_DEPENDENCIES GL)
|
list(APPEND _MAGNUM_MeshTools_DEPENDENCIES GL)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(_MAGNUM_OpenGLTester_DEPENDENCIES GL)
|
set(_MAGNUM_OpenGLTester_DEPENDENCIES GL)
|
||||||
if(MAGNUM_TARGET_HEADLESS OR CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID)
|
if(MAGNUM_TARGET_EGL)
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessEglApplication)
|
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessEglApplication)
|
||||||
elseif(CORRADE_TARGET_IOS)
|
elseif(CORRADE_TARGET_IOS)
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessIosApplication)
|
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessIosApplication)
|
||||||
elseif(CORRADE_TARGET_APPLE AND NOT MAGNUM_TARGET_GLES)
|
elseif(CORRADE_TARGET_APPLE)
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessCglApplication)
|
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessCglApplication)
|
||||||
elseif(CORRADE_TARGET_UNIX)
|
elseif(CORRADE_TARGET_UNIX)
|
||||||
if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES)
|
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessEglApplication)
|
|
||||||
else()
|
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessGlxApplication)
|
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessGlxApplication)
|
||||||
endif()
|
|
||||||
elseif(CORRADE_TARGET_WINDOWS)
|
elseif(CORRADE_TARGET_WINDOWS)
|
||||||
if(NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)
|
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessWglApplication)
|
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessWglApplication)
|
||||||
else()
|
|
||||||
list(APPEND _MAGNUM_OpenGLTester_DEPENDENCIES WindowlessWindowsEglApplication)
|
|
||||||
endif()
|
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(_MAGNUM_Primitives_DEPENDENCIES MeshTools Trade)
|
set(_MAGNUM_Primitives_DEPENDENCIES MeshTools Trade)
|
||||||
|
@ -492,7 +509,6 @@ set(_MAGNUM_WindowlessEglApplication_DEPENDENCIES GL)
|
||||||
set(_MAGNUM_WindowlessGlxApplication_DEPENDENCIES GL)
|
set(_MAGNUM_WindowlessGlxApplication_DEPENDENCIES GL)
|
||||||
set(_MAGNUM_WindowlessIosApplication_DEPENDENCIES GL)
|
set(_MAGNUM_WindowlessIosApplication_DEPENDENCIES GL)
|
||||||
set(_MAGNUM_WindowlessWglApplication_DEPENDENCIES GL)
|
set(_MAGNUM_WindowlessWglApplication_DEPENDENCIES GL)
|
||||||
set(_MAGNUM_WindowlessWindowsEglApplication_DEPENDENCIES GL)
|
|
||||||
set(_MAGNUM_XEglApplication_DEPENDENCIES GL)
|
set(_MAGNUM_XEglApplication_DEPENDENCIES GL)
|
||||||
set(_MAGNUM_CglContext_DEPENDENCIES GL)
|
set(_MAGNUM_CglContext_DEPENDENCIES GL)
|
||||||
set(_MAGNUM_EglContext_DEPENDENCIES GL)
|
set(_MAGNUM_EglContext_DEPENDENCIES GL)
|
||||||
|
@ -708,16 +724,16 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
# OPENGL_opengl_LIBRARY because that's set even if
|
# OPENGL_opengl_LIBRARY because that's set even if
|
||||||
# OpenGL_GL_PREFERENCE is explicitly set to LEGACY.
|
# OpenGL_GL_PREFERENCE is explicitly set to LEGACY.
|
||||||
if(MAGNUM_TARGET_GL)
|
if(MAGNUM_TARGET_GL)
|
||||||
if(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES))
|
if(MAGNUM_TARGET_EGL)
|
||||||
|
find_package(EGL)
|
||||||
|
set_property(TARGET Magnum::${_component} APPEND
|
||||||
|
PROPERTY INTERFACE_LINK_LIBRARIES EGL::EGL)
|
||||||
|
elseif(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE)
|
||||||
find_package(OpenGL)
|
find_package(OpenGL)
|
||||||
if(OPENGL_opengl_LIBRARY AND OpenGL_GL_PREFERENCE STREQUAL GLVND)
|
if(OPENGL_opengl_LIBRARY AND OpenGL_GL_PREFERENCE STREQUAL GLVND)
|
||||||
set_property(TARGET Magnum::${_component} APPEND
|
set_property(TARGET Magnum::${_component} APPEND
|
||||||
PROPERTY INTERFACE_LINK_LIBRARIES OpenGL::GLX)
|
PROPERTY INTERFACE_LINK_LIBRARIES OpenGL::GLX)
|
||||||
endif()
|
endif()
|
||||||
elseif(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES AND NOT CORRADE_TARGET_EMSCRIPTEN)
|
|
||||||
find_package(EGL)
|
|
||||||
set_property(TARGET Magnum::${_component} APPEND
|
|
||||||
PROPERTY INTERFACE_LINK_LIBRARIES EGL::EGL)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -747,16 +763,16 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
# OPENGL_opengl_LIBRARY because that's set even if
|
# OPENGL_opengl_LIBRARY because that's set even if
|
||||||
# OpenGL_GL_PREFERENCE is explicitly set to LEGACY.
|
# OpenGL_GL_PREFERENCE is explicitly set to LEGACY.
|
||||||
if(MAGNUM_TARGET_GL)
|
if(MAGNUM_TARGET_GL)
|
||||||
if(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE AND (NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES))
|
if(MAGNUM_TARGET_EGL)
|
||||||
|
find_package(EGL)
|
||||||
|
set_property(TARGET Magnum::${_component} APPEND
|
||||||
|
PROPERTY INTERFACE_LINK_LIBRARIES EGL::EGL)
|
||||||
|
elseif(CORRADE_TARGET_UNIX AND NOT CORRADE_TARGET_APPLE)
|
||||||
find_package(OpenGL)
|
find_package(OpenGL)
|
||||||
if(OPENGL_opengl_LIBRARY AND OpenGL_GL_PREFERENCE STREQUAL GLVND)
|
if(OPENGL_opengl_LIBRARY AND OpenGL_GL_PREFERENCE STREQUAL GLVND)
|
||||||
set_property(TARGET Magnum::${_component} APPEND
|
set_property(TARGET Magnum::${_component} APPEND
|
||||||
PROPERTY INTERFACE_LINK_LIBRARIES OpenGL::GLX)
|
PROPERTY INTERFACE_LINK_LIBRARIES OpenGL::GLX)
|
||||||
endif()
|
endif()
|
||||||
elseif(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES AND NOT CORRADE_TARGET_EMSCRIPTEN)
|
|
||||||
find_package(EGL)
|
|
||||||
set_property(TARGET Magnum::${_component} APPEND
|
|
||||||
PROPERTY INTERFACE_LINK_LIBRARIES EGL::EGL)
|
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
@ -799,12 +815,6 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
|
|
||||||
# Windowless WGL application has no additional dependencies
|
# Windowless WGL application has no additional dependencies
|
||||||
|
|
||||||
# Windowless Windows/EGL application dependencies
|
|
||||||
elseif(_component STREQUAL WindowlessWindowsEglApplication)
|
|
||||||
find_package(EGL)
|
|
||||||
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
|
||||||
INTERFACE_LINK_LIBRARIES EGL::EGL)
|
|
||||||
|
|
||||||
# X/EGL application dependencies
|
# X/EGL application dependencies
|
||||||
elseif(_component STREQUAL XEglApplication)
|
elseif(_component STREQUAL XEglApplication)
|
||||||
find_package(EGL)
|
find_package(EGL)
|
||||||
|
@ -854,13 +864,13 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
elseif(_component STREQUAL Audio)
|
elseif(_component STREQUAL Audio)
|
||||||
find_package(OpenAL)
|
find_package(OpenAL)
|
||||||
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
||||||
INTERFACE_LINK_LIBRARIES Corrade::PluginManager OpenAL::OpenAL)
|
INTERFACE_LINK_LIBRARIES OpenAL::OpenAL)
|
||||||
|
|
||||||
# No special setup for DebugTools library
|
# No special setup for DebugTools library
|
||||||
|
|
||||||
# GL library
|
# GL library
|
||||||
elseif(_component STREQUAL GL)
|
elseif(_component STREQUAL GL)
|
||||||
if(NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES)
|
if(NOT MAGNUM_TARGET_GLES OR (MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_EGL AND NOT CORRADE_TARGET_IOS))
|
||||||
# If the GLVND library (CMake 3.11+) was found, link to the
|
# If the GLVND library (CMake 3.11+) was found, link to the
|
||||||
# imported target. Otherwise (and also on all systems except
|
# imported target. Otherwise (and also on all systems except
|
||||||
# Linux) link to the classic libGL. Can't use
|
# Linux) link to the classic libGL. Can't use
|
||||||
|
@ -886,6 +896,10 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
INTERFACE_LINK_LIBRARIES OpenGLES3::OpenGLES3)
|
INTERFACE_LINK_LIBRARIES OpenGLES3::OpenGLES3)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# MaterialTools library
|
||||||
|
elseif(_component STREQUAL MaterialTools)
|
||||||
|
set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES PhongToPbrMetallicRoughness.h)
|
||||||
|
|
||||||
# MeshTools library
|
# MeshTools library
|
||||||
elseif(_component STREQUAL MeshTools)
|
elseif(_component STREQUAL MeshTools)
|
||||||
set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES CompressIndices.h)
|
set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES CompressIndices.h)
|
||||||
|
@ -904,26 +918,19 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
|
|
||||||
# No special setup for SceneGraph library
|
# No special setup for SceneGraph library
|
||||||
|
|
||||||
# ShaderTools library
|
# SceneTools library
|
||||||
elseif(_component STREQUAL ShaderTools)
|
elseif(_component STREQUAL SceneTools)
|
||||||
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Hierarchy.h)
|
||||||
INTERFACE_LINK_LIBRARIES Corrade::PluginManager)
|
|
||||||
|
|
||||||
|
# No special setup for ShaderTools library
|
||||||
# No special setup for Shaders library
|
# No special setup for Shaders library
|
||||||
|
# No special setup for Text library
|
||||||
# Text library
|
|
||||||
elseif(_component STREQUAL Text)
|
|
||||||
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
|
||||||
INTERFACE_LINK_LIBRARIES Corrade::PluginManager)
|
|
||||||
|
|
||||||
# TextureTools library
|
# TextureTools library
|
||||||
elseif(_component STREQUAL TextureTools)
|
elseif(_component STREQUAL TextureTools)
|
||||||
set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Atlas.h)
|
set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Atlas.h)
|
||||||
|
|
||||||
# Trade library
|
# No special setup for Trade library
|
||||||
elseif(_component STREQUAL Trade)
|
|
||||||
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
|
||||||
INTERFACE_LINK_LIBRARIES Corrade::PluginManager)
|
|
||||||
|
|
||||||
# Vk library
|
# Vk library
|
||||||
elseif(_component STREQUAL Vk)
|
elseif(_component STREQUAL Vk)
|
||||||
|
@ -952,8 +959,13 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Automatic import of static plugins. Skip in case the include dir was
|
# Automatic import of static plugins. Skip in case the include dir was
|
||||||
# not found -- that'll fail later with a proper message.
|
# not found -- that'll fail later with a proper message. Skip it also
|
||||||
if(_component IN_LIST _MAGNUM_PLUGIN_COMPONENTS AND _MAGNUM_${_COMPONENT}_INCLUDE_DIR)
|
# if the include dir doesn't contain the generated configure.h, which
|
||||||
|
# is the case with Magnum as a subproject and given plugin not enabled
|
||||||
|
# -- there it finds just the sources, where's just configure.h.cmake,
|
||||||
|
# and that's not useful for anything. The assumption here is that it
|
||||||
|
# will fail later anyway on the binary not being found.
|
||||||
|
if(_component IN_LIST _MAGNUM_PLUGIN_COMPONENTS AND _MAGNUM_${_COMPONENT}_INCLUDE_DIR AND EXISTS ${_MAGNUM_${_COMPONENT}_INCLUDE_DIR}/configure.h)
|
||||||
# Automatic import of static plugins
|
# Automatic import of static plugins
|
||||||
file(READ ${_MAGNUM_${_COMPONENT}_INCLUDE_DIR}/configure.h _magnum${_component}Configure)
|
file(READ ${_MAGNUM_${_COMPONENT}_INCLUDE_DIR}/configure.h _magnum${_component}Configure)
|
||||||
string(FIND "${_magnum${_component}Configure}" "#define MAGNUM_${_COMPONENT}_BUILD_STATIC" _magnum${_component}_BUILD_STATIC)
|
string(FIND "${_magnum${_component}Configure}" "#define MAGNUM_${_COMPONENT}_BUILD_STATIC" _magnum${_component}_BUILD_STATIC)
|
||||||
|
@ -967,6 +979,10 @@ foreach(_component ${Magnum_FIND_COMPONENTS})
|
||||||
# are optional dependencies, defer adding them to later once we know if
|
# are optional dependencies, defer adding them to later once we know if
|
||||||
# they were found or not.
|
# they were found or not.
|
||||||
if(_component IN_LIST _MAGNUM_LIBRARY_COMPONENTS OR _component IN_LIST _MAGNUM_PLUGIN_COMPONENTS)
|
if(_component IN_LIST _MAGNUM_LIBRARY_COMPONENTS OR _component IN_LIST _MAGNUM_PLUGIN_COMPONENTS)
|
||||||
|
foreach(_dependency ${_MAGNUM_${_component}_CORRADE_DEPENDENCIES})
|
||||||
|
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
||||||
|
INTERFACE_LINK_LIBRARIES Corrade::${_dependency})
|
||||||
|
endforeach()
|
||||||
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
set_property(TARGET Magnum::${_component} APPEND PROPERTY
|
||||||
INTERFACE_LINK_LIBRARIES Magnum::Magnum)
|
INTERFACE_LINK_LIBRARIES Magnum::Magnum)
|
||||||
set(_MAGNUM_${component}_OPTIONAL_DEPENDENCIES_TO_ADD )
|
set(_MAGNUM_${component}_OPTIONAL_DEPENDENCIES_TO_ADD )
|
||||||
|
@ -1042,6 +1058,10 @@ if(CORRADE_TARGET_EMSCRIPTEN)
|
||||||
# IN_LIST as an operator since 3.1 (Emscripten needs at least 3.7), but
|
# IN_LIST as an operator since 3.1 (Emscripten needs at least 3.7), but
|
||||||
# it's behind a policy, so enable that one as well.
|
# it's behind a policy, so enable that one as well.
|
||||||
cmake_policy(SET CMP0057 NEW)
|
cmake_policy(SET CMP0057 NEW)
|
||||||
|
# TODO since 1.39.19 it's possible to use `-sUSE_WEBGL2=1`, which can be
|
||||||
|
# then passed via target_link_libraries() etc. without requiring CMake
|
||||||
|
# 3.13: https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md#13919-07072020
|
||||||
|
# -- change to that once we drop support for older Emscripten versions
|
||||||
if(CMAKE_VERSION VERSION_LESS 3.13 AND GL IN_LIST Magnum_FIND_COMPONENTS AND NOT MAGNUM_TARGET_GLES2 AND NOT CMAKE_EXE_LINKER_FLAGS MATCHES "-s USE_WEBGL2=1")
|
if(CMAKE_VERSION VERSION_LESS 3.13 AND GL IN_LIST Magnum_FIND_COMPONENTS AND NOT MAGNUM_TARGET_GLES2 AND NOT CMAKE_EXE_LINKER_FLAGS MATCHES "-s USE_WEBGL2=1")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s USE_WEBGL2=1")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s USE_WEBGL2=1")
|
||||||
endif()
|
endif()
|
||||||
|
@ -1069,7 +1089,7 @@ if(NOT CMAKE_VERSION VERSION_LESS 3.16)
|
||||||
# misleading messages.
|
# misleading messages.
|
||||||
elseif(NOT _component IN_LIST _MAGNUM_IMPLICITLY_ENABLED_COMPONENTS)
|
elseif(NOT _component IN_LIST _MAGNUM_IMPLICITLY_ENABLED_COMPONENTS)
|
||||||
string(TOUPPER ${_component} _COMPONENT)
|
string(TOUPPER ${_component} _COMPONENT)
|
||||||
list(APPEND _MAGNUM_REASON_FAILURE_MESSAGE "${_component} is not built by default. Make sure you enabled WITH_${_COMPONENT} when building Magnum.")
|
list(APPEND _MAGNUM_REASON_FAILURE_MESSAGE "${_component} is not built by default. Make sure you enabled MAGNUM_WITH_${_COMPONENT} when building Magnum.")
|
||||||
# Otherwise we have no idea. Better be silent than to print something
|
# Otherwise we have no idea. Better be silent than to print something
|
||||||
# misleading.
|
# misleading.
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -48,7 +48,7 @@
|
||||||
# This file is part of Magnum.
|
# This file is part of Magnum.
|
||||||
#
|
#
|
||||||
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
||||||
# 2020, 2021, 2022 Vladimír Vondruš <mosra@centrum.cz>
|
# 2020, 2021, 2022, 2023 Vladimír Vondruš <mosra@centrum.cz>
|
||||||
# Copyright © 2018 Konstantinos Chatzilygeroudis <costashatz@gmail.com>
|
# Copyright © 2018 Konstantinos Chatzilygeroudis <costashatz@gmail.com>
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
@ -314,7 +314,7 @@ if(NOT CMAKE_VERSION VERSION_LESS 3.16)
|
||||||
# misleading messages.
|
# misleading messages.
|
||||||
elseif(NOT _component IN_LIST _MAGNUMINTEGRATION_IMPLICITLY_ENABLED_COMPONENTS)
|
elseif(NOT _component IN_LIST _MAGNUMINTEGRATION_IMPLICITLY_ENABLED_COMPONENTS)
|
||||||
string(TOUPPER ${_component} _COMPONENT)
|
string(TOUPPER ${_component} _COMPONENT)
|
||||||
list(APPEND _MAGNUMINTEGRATION_REASON_FAILURE_MESSAGE "${_component} is not built by default. Make sure you enabled WITH_${_COMPONENT} when building Magnum Integration.")
|
list(APPEND _MAGNUMINTEGRATION_REASON_FAILURE_MESSAGE "${_component} is not built by default. Make sure you enabled MAGNUM_WITH_${_COMPONENT} when building Magnum Integration.")
|
||||||
# Otherwise we have no idea. Better be silent than to print something
|
# Otherwise we have no idea. Better be silent than to print something
|
||||||
# misleading.
|
# misleading.
|
||||||
else()
|
else()
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
# This file is part of Magnum.
|
# This file is part of Magnum.
|
||||||
#
|
#
|
||||||
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
# Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,
|
||||||
# 2020, 2021, 2022 Vladimír Vondruš <mosra@centrum.cz>
|
# 2020, 2021, 2022, 2023 Vladimír Vondruš <mosra@centrum.cz>
|
||||||
# Copyright © 2018 Jonathan Hale <squareys@googlemail.com>
|
# Copyright © 2018 Jonathan Hale <squareys@googlemail.com>
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
@ -138,10 +138,10 @@ else()
|
||||||
# which CMake somehow prefers before the SDL2-2.0.dylib file. Making
|
# which CMake somehow prefers before the SDL2-2.0.dylib file. Making
|
||||||
# the dylib first so it is preferred. Not sure how this maps to debug
|
# the dylib first so it is preferred. Not sure how this maps to debug
|
||||||
# config though :/
|
# config though :/
|
||||||
NAMES SDL2-2.0 SDL2
|
NAMES SDL2-2.0 SDL2 SDL2-static
|
||||||
PATH_SUFFIXES ${_SDL2_LIBRARY_PATH_SUFFIX})
|
PATH_SUFFIXES ${_SDL2_LIBRARY_PATH_SUFFIX})
|
||||||
find_library(SDL2_LIBRARY_DEBUG
|
find_library(SDL2_LIBRARY_DEBUG
|
||||||
NAMES SDL2d
|
NAMES SDL2d SDL2-staticd
|
||||||
PATH_SUFFIXES ${_SDL2_LIBRARY_PATH_SUFFIX})
|
PATH_SUFFIXES ${_SDL2_LIBRARY_PATH_SUFFIX})
|
||||||
# FPHSA needs one of the _DEBUG/_RELEASE variables to check that the
|
# FPHSA needs one of the _DEBUG/_RELEASE variables to check that the
|
||||||
# library was found -- using SDL_LIBRARY, which will get populated by
|
# library was found -- using SDL_LIBRARY, which will get populated by
|
||||||
|
|
Loading…
Reference in a new issue