diff --git a/CMakeLists.txt b/CMakeLists.txt index 151c688a0..3ca64801e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -57,7 +57,7 @@ set_property(GLOBAL PROPERTY USE_FOLDERS ON) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PROJECT_SOURCE_DIR}/modules/") # Find Corrade first so we can check on the target -find_package(Corrade REQUIRED PluginManager Utility) +find_package(Corrade REQUIRED Utility) include(CMakeDependentOption) @@ -113,6 +113,7 @@ cmake_dependent_option(WITH_SCENEGRAPH "Build SceneGraph library" ON "NOT WITH_S cmake_dependent_option(WITH_SHADERS "Build Shaders library" ON "NOT WITH_DEBUGTOOLS OR ( NOT WITH_SHAPES AND NOT WITH_SCENEGRAPH )" ON) cmake_dependent_option(WITH_TEXT "Build Text library" ON "NOT WITH_FONTCONVERTER;NOT WITH_MAGNUMFONT;NOT WITH_MAGNUMFONTCONVERTER" ON) cmake_dependent_option(WITH_TEXTURETOOLS "Build TextureTools library" ON "NOT WITH_TEXT;NOT WITH_DISTANCEFIELDCONVERTER" ON) +cmake_dependent_option(WITH_TRADE "Build Trade library" ON "NOT WITH_MESHTOOLS;NOT WITH_PRIMITIVES;NOT WITH_IMAGECONVERTER;NOT WITH_ANYIMAGEIMPORTER;NOT WITH_ANYIMAGECONVERTER;NOT WITH_ANYSCENEIMPORTER;NOT WITH_OBJIMPORTER;NOT WITH_TGAIMAGECONVERTER;NOT WITH_TGAIMPORTER" ON) # EGL context and windowless EGL application, available everywhere cmake_dependent_option(WITH_WINDOWLESSEGLAPPLICATION "Build WindowlessEglApplication library" OFF "NOT TARGET_GLES OR TARGET_DESKTOP_GLES OR NOT WITH_MAGNUMINFO" ON) diff --git a/doc/building.dox b/doc/building.dox index 43f393e72..48fa3ff9d 100644 --- a/doc/building.dox +++ b/doc/building.dox @@ -412,8 +412,10 @@ be built and which not: - `WITH_AUDIO` --- Build the @ref Audio library. Depends on [OpenAL](https://www.openal.org/), not built by default. - `WITH_DEBUGTOOLS` --- Build the @ref DebugTools library. -- `WITH_MESHTOOLS` --- Build the @ref MeshTools library. -- `WITH_PRIMITIVES` --- Build the @ref Primitives library. +- `WITH_MESHTOOLS` --- Build the @ref MeshTools library. Enables also + building of the Trade library. +- `WITH_PRIMITIVES` --- Build the @ref Primitives library. Enables also + building of the Trade library. - `WITH_SCENEGRAPH` --- Build the @ref SceneGraph library. Enabled automatically if `WITH_SHAPES` is enabled. - `WITH_SHADERS` --- Build the @ref Shaders library. @@ -424,6 +426,7 @@ be built and which not: the TextureTools library. - `WITH_TEXTURETOOLS` --- Build the @ref TextureTools library. Enabled automatically if `WITH_TEXT` or `WITH_DISTANCEFIELDCONVERTER` is enabled. +- `WITH_TRADE` --- Build the @ref Trade library There are more involved component dependencies that are not described here (for example the @ref DebugTools has some functionality that gets built only when @@ -491,11 +494,12 @@ default. - `WITH_ANYAUDIOIMPORTER` --- Build the @ref Audio::AnyImporter "AnyAudioImporter" plugin. Enables also building of the @ref Audio library. - `WITH_ANYIMAGECONVERTER` --- Build the - @ref Trade::AnyImageConverter "AnyImageConverter" plugin. + @ref Trade::AnyImageConverter "AnyImageConverter" plugin. Enables also + building of the @ref Trade library. - `WITH_ANYIMAGEIMPORTER` --- Build the @ref Trade::AnyImageImporter "AnyImageImporter" - plugin. + plugin. Enables also building of the @ref Trade library. - `WITH_ANYSCENEIMPORTER` --- Build the @ref Trade::AnySceneImporter "AnySceneImporter" - plugin. + plugin. Enables also building of the @ref Trade library. - `WITH_MAGNUMFONT` --- Build the @ref Text::MagnumFont "MagnumFont" plugin. Enables also building of the @ref Text library and the @ref Trade::TgaImporter "TgaImporter" plugin. @@ -504,11 +508,12 @@ default. building of the @ref Text library and the @ref Trade::TgaImageConverter "TgaImageConverter" plugin. - `WITH_OBJIMPORTER` --- Build the @ref Trade::ObjImporter "ObjImporter" - plugin. + plugin. Enables also building of the @ref Trade library. - `WITH_TGAIMPORTER` --- Build the @ref Trade::TgaImporter "TgaImporter" - plugin. + plugin. Enables also building of the @ref Trade library. - `WITH_TGAIMAGECONVERTER` --- Build the - @ref Trade::TgaImageConverter "TgaImageConverter" plugin. + @ref Trade::TgaImageConverter "TgaImageConverter" plugin. Enables also + building of the @ref Trade library. - `WITH_WAVAUDIOIMPORTER` --- Build the @ref Audio::WavImporter "WavAudioImporter" plugin. Enables also building of the @ref Audio library. diff --git a/doc/changelog.dox b/doc/changelog.dox index bc640bcbd..60f503eed 100644 --- a/doc/changelog.dox +++ b/doc/changelog.dox @@ -99,6 +99,8 @@ See also: repository. If you are using them statically via CMake, you need to update your copies of `FindMagnum.cmake` and `FindMagnumPlugins.cmake` modules. See @ref building and @ref cmake for more information. +- The @ref Trade namespace is now a separate library, allowing to use core + Magnum functionality without @ref Corrade::PluginManager @subsection changelog-latest-bugfixes Bug fixes diff --git a/doc/cmake.dox b/doc/cmake.dox index 11e70eea9..ba63b8eea 100644 --- a/doc/cmake.dox +++ b/doc/cmake.dox @@ -102,6 +102,7 @@ the components. The optional components are: - `Shapes` --- @ref Shapes library - `Text` --- @ref Text library - `TextureTools` --- @ref TextureTools library +- `Trade` --- @ref Trade library Platform namespace is split into more components: @@ -173,7 +174,7 @@ in build and use it with CMake. Example usage with specifying additional components is: @code{.cmake} -find_package(Magnum REQUIRED MeshTools Primitives Sdl2Application) +find_package(Magnum REQUIRED Trade MeshTools Primitives Sdl2Application) @endcode For each component is then defined: diff --git a/doc/namespaces.dox b/doc/namespaces.dox index 8404bde69..dfa02feb6 100644 --- a/doc/namespaces.dox +++ b/doc/namespaces.dox @@ -405,11 +405,12 @@ See @ref building and @ref cmake for more information. Contains plugin interfaces for importing data of various formats and classes for direct access to the data. -This library is built as part of Magnum by default. To use it, you need to -find the `Magnum` package and link to the `Magnum::Magnum` target: +This library is built if `WITH_TRADE` is enabled when building Magnum. To use +this library with CMake, you need to request the `Trade` component of the +`Magnum` package and link to the `Magnum::Trade` target: @code{.cmake} -find_package(Magnum REQUIRED) +find_package(Magnum REQUIRED Trade) # ... target_link_libraries(your-app Magnum::Trade) diff --git a/modules/FindMagnum.cmake b/modules/FindMagnum.cmake index 357495425..f2dbd2031 100644 --- a/modules/FindMagnum.cmake +++ b/modules/FindMagnum.cmake @@ -57,6 +57,7 @@ # Shapes - Shapes library # Text - Text library # TextureTools - TextureTools library +# Trade - Trade library # GlfwApplication - GLFW application # GlutApplication - GLUT application # GlxApplication - GLX application @@ -87,7 +88,7 @@ # # Example usage with specifying additional components is:: # -# find_package(Magnum REQUIRED MeshTools Primitives GlutApplication) +# find_package(Magnum REQUIRED Trade MeshTools Primitives GlutApplication) # # For each component is then defined: # @@ -206,8 +207,20 @@ # DEALINGS IN THE SOFTWARE. # -# Dependencies -find_package(Corrade REQUIRED Utility PluginManager) +# Corrade library dependencies +set(_MAGNUM_CORRADE_DEPENDENCIES ) +foreach(_component ${Magnum_FIND_COMPONENTS}) + string(TOUPPER ${_component} _COMPONENT) + + # Unrolling the transitive dependencies here so this doesn't need to be + # after resolving inter-component dependencies. Listing also all plugins. + if(_component MATCHES "^(Audio|DebugTools|MeshTools|Primitives|Text|TextureTools|Trade|.+Importer|.+ImageConverter|.+Font)$") + set(_MAGNUM_${_COMPONENT}_CORRADE_DEPENDENCIES PluginManager) + endif() + + list(APPEND _MAGNUM_CORRADE_DEPENDENCIES ${_MAGNUM_${_COMPONENT}_CORRADE_DEPENDENCIES}) +endforeach() +find_package(Corrade REQUIRED Utility ${_MAGNUM_CORRADE_DEPENDENCIES}) # Root include dir find_path(MAGNUM_INCLUDE_DIR @@ -302,8 +315,7 @@ if(NOT TARGET Magnum::Magnum) # Dependent libraries set_property(TARGET Magnum::Magnum APPEND PROPERTY INTERFACE_LINK_LIBRARIES - Corrade::Utility - Corrade::PluginManager) + Corrade::Utility) # Dependent libraries and includes if(NOT MAGNUM_TARGET_GLES OR MAGNUM_TARGET_DESKTOP_GLES) @@ -339,7 +351,9 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) elseif(_component STREQUAL Text) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES TextureTools) elseif(_component STREQUAL DebugTools) - set(_MAGNUM_${_COMPONENT}_DEPENDENCIES MeshTools Primitives SceneGraph Shaders Shapes) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES MeshTools Primitives SceneGraph Shaders Shapes Trade) + elseif(_component STREQUAL MeshTools) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES Trade) elseif(_component STREQUAL OpenGLTester) if(MAGNUM_TARGET_HEADLESS OR CORRADE_TARGET_EMSCRIPTEN OR CORRADE_TARGET_ANDROID) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessEglApplication) @@ -360,16 +374,20 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES WindowlessWindowsEglApplication) endif() endif() + elseif(_component STREQUAL Primitives) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES Trade) elseif(_component STREQUAL MagnumFont) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES TgaImporter) # and below elseif(_component STREQUAL MagnumFontConverter) set(_MAGNUM_${_COMPONENT}_DEPENDENCIES TgaImageConverter) # and below elseif(_component STREQUAL ObjImporter) - set(_MAGNUM_${_COMPONENT}_DEPENDENCIES MeshTools) + set(_MAGNUM_${_COMPONENT}_DEPENDENCIES MeshTools) # and below endif() if(_component MATCHES ".+AudioImporter") list(APPEND _MAGNUM_${_COMPONENT}_DEPENDENCIES Audio) + elseif(_component MATCHES ".+(Importer|ImageConverter)") + list(APPEND _MAGNUM_${_COMPONENT}_DEPENDENCIES Trade) elseif(_component MATCHES ".+(Font|FontConverter)") list(APPEND _MAGNUM_${_COMPONENT}_DEPENDENCIES Text TextureTools) endif() @@ -394,7 +412,7 @@ endif() # Component distinction (listing them explicitly to avoid mistakes with finding # components from other repositories) -set(_MAGNUM_LIBRARY_COMPONENTS "^(Audio|DebugTools|MeshTools|Primitives|SceneGraph|Shaders|Shapes|Text|TextureTools|AndroidApplication|GlfwApplication|GlutApplication|GlxApplication|Sdl2Application|XEglApplication|WindowlessCglApplication|WindowlessEglApplication|WindowlessGlxApplication|WindowlessIosApplication|WindowlessWglApplication|WindowlessWindowsEglApplication|CglContext|EglContext|GlxContext|WglContext|OpenGLTester)$") +set(_MAGNUM_LIBRARY_COMPONENTS "^(Audio|DebugTools|MeshTools|Primitives|SceneGraph|Shaders|Shapes|Text|TextureTools|Trade|AndroidApplication|GlfwApplication|GlutApplication|GlxApplication|Sdl2Application|XEglApplication|WindowlessCglApplication|WindowlessEglApplication|WindowlessGlxApplication|WindowlessIosApplication|WindowlessWglApplication|WindowlessWindowsEglApplication|CglContext|EglContext|GlxContext|WglContext|OpenGLTester)$") set(_MAGNUM_PLUGIN_COMPONENTS "^(AnyAudioImporter|AnyImageConverter|AnyImageImporter|AnySceneImporter|MagnumFont|MagnumFontConverter|ObjImporter|TgaImageConverter|TgaImporter|WavAudioImporter)$") set(_MAGNUM_EXECUTABLE_COMPONENTS "^(distancefieldconverter|fontconverter|imageconverter|info|al-info)$") @@ -612,7 +630,7 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) set_property(TARGET Magnum::${_component} APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${OPENAL_INCLUDE_DIR}) set_property(TARGET Magnum::${_component} APPEND PROPERTY - INTERFACE_LINK_LIBRARIES ${OPENAL_LIBRARY}) + INTERFACE_LINK_LIBRARIES ${OPENAL_LIBRARY} Corrade::PluginManager) # No special setup for DebugTools library @@ -631,11 +649,20 @@ foreach(_component ${Magnum_FIND_COMPONENTS}) # No special setup for SceneGraph library # No special setup for Shaders library # No special setup for Shapes 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 elseif(_component STREQUAL TextureTools) set(_MAGNUM_${_COMPONENT}_INCLUDE_PATH_NAMES Atlas.h) + + # Trade library + elseif(_component STREQUAL Trade) + set_property(TARGET Magnum::${_component} APPEND PROPERTY + INTERFACE_LINK_LIBRARIES Corrade::PluginManager) endif() # No special setup for AnyAudioImporter plugin diff --git a/src/Magnum/Audio/CMakeLists.txt b/src/Magnum/Audio/CMakeLists.txt index 7f4bbc3c3..c2ef04297 100644 --- a/src/Magnum/Audio/CMakeLists.txt +++ b/src/Magnum/Audio/CMakeLists.txt @@ -23,6 +23,7 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) find_package(OpenAL REQUIRED) set(MagnumAudio_SRCS diff --git a/src/Magnum/CMakeLists.txt b/src/Magnum/CMakeLists.txt index 801dfe209..779a9a6ae 100644 --- a/src/Magnum/CMakeLists.txt +++ b/src/Magnum/CMakeLists.txt @@ -63,22 +63,7 @@ set(Magnum_SRCS Implementation/State.cpp Implementation/TextureState.cpp Implementation/driverSpecific.cpp - Implementation/maxTextureSize.cpp - - Trade/AbstractImageConverter.cpp - Trade/AbstractImporter.cpp - Trade/AbstractMaterialData.cpp - Trade/ImageData.cpp - Trade/LightData.cpp - Trade/MeshData2D.cpp - Trade/MeshData3D.cpp - Trade/MeshObjectData2D.cpp - Trade/MeshObjectData3D.cpp - Trade/ObjectData2D.cpp - Trade/ObjectData3D.cpp - Trade/PhongMaterialData.cpp - Trade/SceneData.cpp - Trade/TextureData.cpp) + Implementation/maxTextureSize.cpp) set(Magnum_HEADERS AbstractFramebuffer.h @@ -249,8 +234,7 @@ target_include_directories(Magnum PUBLIC ${PROJECT_BINARY_DIR}/src ${PROJECT_SOURCE_DIR}/src/MagnumExternal/OpenGL) target_link_libraries(Magnum - Corrade::Utility - Corrade::PluginManager) + Corrade::Utility) if(NOT TARGET_GLES OR TARGET_DESKTOP_GLES) target_link_libraries(Magnum ${OPENGL_gl_LIBRARY}) elseif(TARGET_GLES2) @@ -305,7 +289,6 @@ endif() add_subdirectory(Math) add_subdirectory(Platform) -add_subdirectory(Trade) if(WITH_AUDIO) add_subdirectory(Audio) @@ -343,6 +326,10 @@ if(WITH_TEXTURETOOLS) add_subdirectory(TextureTools) endif() +if(WITH_TRADE) + add_subdirectory(Trade) +endif() + if(BUILD_TESTS) # Library with graceful assert for testing add_library(MagnumMathTestLib ${SHARED_OR_STATIC} diff --git a/src/Magnum/MeshTools/CMakeLists.txt b/src/Magnum/MeshTools/CMakeLists.txt index 570664880..6c1e689e4 100644 --- a/src/Magnum/MeshTools/CMakeLists.txt +++ b/src/Magnum/MeshTools/CMakeLists.txt @@ -77,7 +77,9 @@ if(NOT BUILD_STATIC) elseif(BUILD_STATIC_PIC) set_target_properties(MagnumMeshTools PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(MagnumMeshTools Magnum) +target_link_libraries(MagnumMeshTools PUBLIC + Magnum + MagnumTrade) install(TARGETS MagnumMeshTools RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} @@ -98,7 +100,9 @@ if(BUILD_TESTS) if(BUILD_STATIC_PIC) set_target_properties(MagnumMeshToolsTestLib PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() - target_link_libraries(MagnumMeshToolsTestLib Magnum) + target_link_libraries(MagnumMeshToolsTestLib PUBLIC + Magnum + MagnumMeshTools) # On Windows we need to install first and then run the tests to avoid "DLL # not found" hell, thus we need to install this too diff --git a/src/Magnum/Primitives/CMakeLists.txt b/src/Magnum/Primitives/CMakeLists.txt index bc72d40d6..7fead0fcb 100644 --- a/src/Magnum/Primitives/CMakeLists.txt +++ b/src/Magnum/Primitives/CMakeLists.txt @@ -76,7 +76,9 @@ if(NOT BUILD_STATIC) elseif(BUILD_STATIC_PIC) set_target_properties(MagnumPrimitives PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(MagnumPrimitives Magnum) +target_link_libraries(MagnumPrimitives PUBLIC + Magnum + MagnumTrade) install(TARGETS MagnumPrimitives RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} diff --git a/src/Magnum/Text/CMakeLists.txt b/src/Magnum/Text/CMakeLists.txt index 8a55561f4..046d661d2 100644 --- a/src/Magnum/Text/CMakeLists.txt +++ b/src/Magnum/Text/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + set(MagnumText_SRCS AbstractFont.cpp AbstractFontConverter.cpp @@ -57,7 +59,10 @@ if(NOT BUILD_STATIC) elseif(BUILD_STATIC_PIC) set_target_properties(MagnumText PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(MagnumText Magnum MagnumTextureTools) +target_link_libraries(MagnumText PUBLIC + Magnum + MagnumTextureTools + Corrade::PluginManager) install(TARGETS MagnumText RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} @@ -67,24 +72,27 @@ install(FILES ${MagnumText_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Te if(WITH_FONTCONVERTER) add_executable(magnum-fontconverter fontconverter.cpp) - target_link_libraries(magnum-fontconverter Magnum MagnumText) + target_link_libraries(magnum-fontconverter PRIVATE + Magnum + MagnumText + MagnumTrade) if(MAGNUM_TARGET_HEADLESS) - target_link_libraries(magnum-fontconverter MagnumWindowlessEglApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessEglApplication) elseif(CORRADE_TARGET_IOS) - target_link_libraries(magnum-fontconverter MagnumWindowlessIosApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessIosApplication) elseif(CORRADE_TARGET_APPLE) - target_link_libraries(magnum-fontconverter MagnumWindowlessCglApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessCglApplication) elseif(CORRADE_TARGET_UNIX) if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES) - target_link_libraries(magnum-fontconverter MagnumWindowlessEglApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessEglApplication) else() - target_link_libraries(magnum-fontconverter MagnumWindowlessGlxApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessGlxApplication) endif() elseif(CORRADE_TARGET_WINDOWS) if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES) - target_link_libraries(magnum-fontconverter MagnumWindowlessWindowsEglApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessWindowsEglApplication) else() - target_link_libraries(magnum-fontconverter MagnumWindowlessWglApplication) + target_link_libraries(magnum-fontconverter PRIVATE MagnumWindowlessWglApplication) endif() else() message(FATAL_ERROR "magnum-fontconverter is not available on this platform. Set WITH_FONTCONVERTER to OFF to suppress this warning.") diff --git a/src/Magnum/TextureTools/CMakeLists.txt b/src/Magnum/TextureTools/CMakeLists.txt index b74ea0c21..50878260b 100644 --- a/src/Magnum/TextureTools/CMakeLists.txt +++ b/src/Magnum/TextureTools/CMakeLists.txt @@ -59,24 +59,27 @@ install(FILES ${MagnumTextureTools_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL if(WITH_DISTANCEFIELDCONVERTER) add_executable(magnum-distancefieldconverter distancefieldconverter.cpp) - target_link_libraries(magnum-distancefieldconverter Magnum MagnumTextureTools) + target_link_libraries(magnum-distancefieldconverter PRIVATE + Magnum + MagnumTextureTools + MagnumTrade) if(MAGNUM_TARGET_HEADLESS) - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessEglApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessEglApplication) elseif(CORRADE_TARGET_IOS) - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessIosApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessIosApplication) elseif(CORRADE_TARGET_APPLE) - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessCglApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessCglApplication) elseif(CORRADE_TARGET_UNIX) if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES) - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessEglApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessEglApplication) else() - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessGlxApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessGlxApplication) endif() elseif(CORRADE_TARGET_WINDOWS) if(MAGNUM_TARGET_GLES AND NOT MAGNUM_TARGET_DESKTOP_GLES) - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessWindowsEglApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessWindowsEglApplication) else() - target_link_libraries(magnum-distancefieldconverter MagnumWindowlessWglApplication) + target_link_libraries(magnum-distancefieldconverter PRIVATE MagnumWindowlessWglApplication) endif() else() message(FATAL_ERROR "magnum-distancefieldconverter is not available on this platform. Set WITH_DISTANCEFIELDCONVERTER to OFF to suppress this warning.") diff --git a/src/Magnum/Trade/AbstractImageConverter.h b/src/Magnum/Trade/AbstractImageConverter.h index a7397efe6..e764f16ae 100644 --- a/src/Magnum/Trade/AbstractImageConverter.h +++ b/src/Magnum/Trade/AbstractImageConverter.h @@ -33,8 +33,8 @@ #include #include "Magnum/Magnum.h" -#include "Magnum/visibility.h" #include "Magnum/Trade/Trade.h" +#include "Magnum/Trade/visibility.h" #ifdef MAGNUM_BUILD_DEPRECATED #include "MagnumExternal/Optional/OptionalWrapper.h" @@ -73,7 +73,7 @@ checked by the implementation: cause dangling function pointer call on array destruction if the plugin gets unloaded before the array is destroyed. */ -class MAGNUM_EXPORT AbstractImageConverter: public PluginManager::AbstractManagingPlugin { +class MAGNUM_TRADE_EXPORT AbstractImageConverter: public PluginManager::AbstractManagingPlugin { public: /** * @brief Features supported by this converter diff --git a/src/Magnum/Trade/AbstractImporter.h b/src/Magnum/Trade/AbstractImporter.h index 191caa6d0..912ec2a26 100644 --- a/src/Magnum/Trade/AbstractImporter.h +++ b/src/Magnum/Trade/AbstractImporter.h @@ -35,8 +35,8 @@ #include #include "Magnum/Magnum.h" -#include "Magnum/visibility.h" #include "Magnum/Trade/Trade.h" +#include "Magnum/Trade/visibility.h" #ifdef MAGNUM_BUILD_DEPRECATED #include "MagnumExternal/Optional/OptionalWrapper.h" @@ -86,7 +86,7 @@ checked by the implementation: @todo How to handle casting from std::unique_ptr<> in more convenient way? */ -class MAGNUM_EXPORT AbstractImporter: public PluginManager::AbstractManagingPlugin { +class MAGNUM_TRADE_EXPORT AbstractImporter: public PluginManager::AbstractManagingPlugin { public: /** * @brief Features supported by this importer diff --git a/src/Magnum/Trade/AbstractMaterialData.h b/src/Magnum/Trade/AbstractMaterialData.h index ec22fc13d..e326d933f 100644 --- a/src/Magnum/Trade/AbstractMaterialData.h +++ b/src/Magnum/Trade/AbstractMaterialData.h @@ -30,7 +30,7 @@ */ #include "Magnum/Magnum.h" -#include "Magnum/visibility.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -48,7 +48,7 @@ enum class MaterialType: UnsignedByte { Subclasses provide access to parameters for given material type. */ -class MAGNUM_EXPORT AbstractMaterialData { +class MAGNUM_TRADE_EXPORT AbstractMaterialData { public: virtual ~AbstractMaterialData(); @@ -87,8 +87,8 @@ class MAGNUM_EXPORT AbstractMaterialData { const void* _importerState; }; -/** @debugoperatorenum{Magnum::Trade::MaterialType} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, MaterialType value); +/** @debugoperatorenum{MaterialType} */ +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, MaterialType value); }} diff --git a/src/Magnum/Trade/CMakeLists.txt b/src/Magnum/Trade/CMakeLists.txt index f148e3a78..16ecc006f 100644 --- a/src/Magnum/Trade/CMakeLists.txt +++ b/src/Magnum/Trade/CMakeLists.txt @@ -23,6 +23,23 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + +set(MagnumTrade_SRCS + AbstractImageConverter.cpp + AbstractImporter.cpp + AbstractMaterialData.cpp + ImageData.cpp + LightData.cpp + MeshData2D.cpp + MeshData3D.cpp + MeshObjectData2D.cpp + MeshObjectData3D.cpp + ObjectData2D.cpp + ObjectData3D.cpp + PhongMaterialData.cpp + SceneData.cpp + TextureData.cpp) set(MagnumTrade_HEADERS AbstractImporter.h AbstractImageConverter.h @@ -39,22 +56,41 @@ set(MagnumTrade_HEADERS PhongMaterialData.h SceneData.h TextureData.h - Trade.h) + Trade.h + + visibility.h) if(NOT CORRADE_PLUGINMANAGER_NO_DYNAMIC_PLUGIN_SUPPORT) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) endif() -# Force IDEs to display all header files in project view -add_custom_target(MagnumTrade SOURCES ${MagnumTrade_HEADERS}) -set_target_properties(MagnumTrade PROPERTIES FOLDER "Magnum/Trade") +# Trade library +add_library(MagnumTrade ${SHARED_OR_STATIC} + ${MagnumTrade_SRCS}) +set_target_properties(MagnumTrade PROPERTIES + DEBUG_POSTFIX "-d" + FOLDER "Magnum/Trade") +if(NOT BUILD_STATIC) + set_target_properties(MagnumTrade PROPERTIES VERSION ${MAGNUM_LIBRARY_VERSION} SOVERSION ${MAGNUM_LIBRARY_SOVERSION}) +elseif(BUILD_STATIC_PIC) + set_target_properties(MagnumTrade PROPERTIES POSITION_INDEPENDENT_CODE ON) +endif() +target_link_libraries(MagnumTrade PUBLIC + Magnum + Corrade::PluginManager) +install(TARGETS MagnumTrade + RUNTIME DESTINATION ${MAGNUM_BINARY_INSTALL_DIR} + LIBRARY DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR} + ARCHIVE DESTINATION ${MAGNUM_LIBRARY_INSTALL_DIR}) install(FILES ${MagnumTrade_HEADERS} DESTINATION ${MAGNUM_INCLUDE_INSTALL_DIR}/Trade) if(WITH_IMAGECONVERTER) add_executable(magnum-imageconverter imageconverter.cpp) - target_link_libraries(magnum-imageconverter Magnum) + target_link_libraries(magnum-imageconverter PRIVATE + Magnum + MagnumTrade) set_target_properties(magnum-imageconverter PROPERTIES FOLDER "Magnum/Trade") install(TARGETS magnum-imageconverter DESTINATION ${MAGNUM_BINARY_INSTALL_DIR}) @@ -66,3 +102,6 @@ endif() if(BUILD_TESTS) add_subdirectory(Test) endif() + +# Magnum Trade target alias for superprojects +add_library(Magnum::Trade ALIAS MagnumTrade) diff --git a/src/Magnum/Trade/CameraData.h b/src/Magnum/Trade/CameraData.h index 8e1c1dbbd..1f4fabba9 100644 --- a/src/Magnum/Trade/CameraData.h +++ b/src/Magnum/Trade/CameraData.h @@ -29,10 +29,8 @@ * @brief Class @ref Magnum::Trade::CameraData */ -#include - -#include "Magnum/Math/Angle.h" #include "Magnum/Magnum.h" +#include "Magnum/Math/Angle.h" namespace Magnum { namespace Trade { diff --git a/src/Magnum/Trade/ImageData.cpp b/src/Magnum/Trade/ImageData.cpp index 110324121..ebad17613 100644 --- a/src/Magnum/Trade/ImageData.cpp +++ b/src/Magnum/Trade/ImageData.cpp @@ -89,9 +89,9 @@ template ImageData::operator CompressedImage } #ifndef DOXYGEN_GENERATING_OUTPUT -template class MAGNUM_EXPORT ImageData<1>; -template class MAGNUM_EXPORT ImageData<2>; -template class MAGNUM_EXPORT ImageData<3>; +template class MAGNUM_TRADE_EXPORT ImageData<1>; +template class MAGNUM_TRADE_EXPORT ImageData<2>; +template class MAGNUM_TRADE_EXPORT ImageData<3>; #endif }} diff --git a/src/Magnum/Trade/ImageData.h b/src/Magnum/Trade/ImageData.h index dbc05444a..8df03bd29 100644 --- a/src/Magnum/Trade/ImageData.h +++ b/src/Magnum/Trade/ImageData.h @@ -32,6 +32,7 @@ #include #include "Magnum/ImageView.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { diff --git a/src/Magnum/Trade/LightData.h b/src/Magnum/Trade/LightData.h index a1eba48ce..72569fc6f 100644 --- a/src/Magnum/Trade/LightData.h +++ b/src/Magnum/Trade/LightData.h @@ -31,6 +31,7 @@ #include "Magnum/Magnum.h" #include "Magnum/Math/Color.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -106,8 +107,8 @@ class LightData { const void* _importerState; }; -/** @debugoperatorenum{Magnum::Trade::LightData::Type} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, LightData::Type value); +/** @debugoperatorclassenum{LightData,LightData::Type} */ +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, LightData::Type value); }} diff --git a/src/Magnum/Trade/MeshData2D.h b/src/Magnum/Trade/MeshData2D.h index 946914395..6a38dba75 100644 --- a/src/Magnum/Trade/MeshData2D.h +++ b/src/Magnum/Trade/MeshData2D.h @@ -32,7 +32,7 @@ #include #include "Magnum/Magnum.h" -#include "Magnum/visibility.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -43,7 +43,7 @@ Provides access to mesh data and additional information, such as primitive type. @see @ref MeshData3D */ -class MAGNUM_EXPORT MeshData2D { +class MAGNUM_TRADE_EXPORT MeshData2D { public: /** * @brief Constructor diff --git a/src/Magnum/Trade/MeshData3D.h b/src/Magnum/Trade/MeshData3D.h index 8fe42a4f1..98b6984f8 100644 --- a/src/Magnum/Trade/MeshData3D.h +++ b/src/Magnum/Trade/MeshData3D.h @@ -32,7 +32,7 @@ #include #include "Magnum/Magnum.h" -#include "Magnum/visibility.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -43,7 +43,7 @@ Provides access to mesh data and additional information, such as primitive type. @see @ref MeshData2D */ -class MAGNUM_EXPORT MeshData3D { +class MAGNUM_TRADE_EXPORT MeshData3D { public: /** * @brief Constructor diff --git a/src/Magnum/Trade/MeshObjectData2D.h b/src/Magnum/Trade/MeshObjectData2D.h index 6d15f4414..408285684 100644 --- a/src/Magnum/Trade/MeshObjectData2D.h +++ b/src/Magnum/Trade/MeshObjectData2D.h @@ -39,7 +39,7 @@ namespace Magnum { namespace Trade { Provides access to material information for given mesh instance. @see @ref MeshObjectData3D */ -class MAGNUM_EXPORT MeshObjectData2D: public ObjectData2D { +class MAGNUM_TRADE_EXPORT MeshObjectData2D: public ObjectData2D { public: /** * @brief Constructor diff --git a/src/Magnum/Trade/MeshObjectData3D.h b/src/Magnum/Trade/MeshObjectData3D.h index 09657a4b4..c90d244fb 100644 --- a/src/Magnum/Trade/MeshObjectData3D.h +++ b/src/Magnum/Trade/MeshObjectData3D.h @@ -39,7 +39,7 @@ namespace Magnum { namespace Trade { Provides access to material information for given mesh instance. @see @ref MeshObjectData2D */ -class MAGNUM_EXPORT MeshObjectData3D: public ObjectData3D { +class MAGNUM_TRADE_EXPORT MeshObjectData3D: public ObjectData3D { public: /** * @brief Constructor diff --git a/src/Magnum/Trade/ObjectData2D.h b/src/Magnum/Trade/ObjectData2D.h index df428e6fb..83f1d5c44 100644 --- a/src/Magnum/Trade/ObjectData2D.h +++ b/src/Magnum/Trade/ObjectData2D.h @@ -33,6 +33,7 @@ #include "Magnum/Magnum.h" #include "Magnum/Math/Matrix3.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -59,7 +60,7 @@ enum class ObjectInstanceType2D: UnsignedByte { Provides access to object transformation and hierarchy. @see @ref MeshObjectData2D, @ref ObjectData3D */ -class MAGNUM_EXPORT ObjectData2D { +class MAGNUM_TRADE_EXPORT ObjectData2D { public: /** * @brief Constructor @@ -146,8 +147,8 @@ class MAGNUM_EXPORT ObjectData2D { const void* _importerState; }; -/** @debugoperatorenum{Magnum::Trade::ObjectInstanceType2D} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, ObjectInstanceType2D value); +/** @debugoperatorenum{ObjectInstanceType2D} */ +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ObjectInstanceType2D value); }} diff --git a/src/Magnum/Trade/ObjectData3D.h b/src/Magnum/Trade/ObjectData3D.h index d20e3e833..96276e59a 100644 --- a/src/Magnum/Trade/ObjectData3D.h +++ b/src/Magnum/Trade/ObjectData3D.h @@ -33,6 +33,7 @@ #include "Magnum/Magnum.h" #include "Magnum/Math/Matrix4.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -60,7 +61,7 @@ enum class ObjectInstanceType3D: UnsignedByte { Provides access to object transformation and hierarchy. @see @ref MeshObjectData3D, @ref ObjectData2D */ -class MAGNUM_EXPORT ObjectData3D { +class MAGNUM_TRADE_EXPORT ObjectData3D { public: /** * @brief Constructor @@ -145,8 +146,8 @@ class MAGNUM_EXPORT ObjectData3D { const void* _importerState; }; -/** @debugoperatorenum{Magnum::Trade::ObjectInstanceType3D} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, ObjectInstanceType3D value); +/** @debugoperatorenum{ObjectInstanceType3D} */ +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, ObjectInstanceType3D value); }} diff --git a/src/Magnum/Trade/PhongMaterialData.h b/src/Magnum/Trade/PhongMaterialData.h index 50650a175..c813058f6 100644 --- a/src/Magnum/Trade/PhongMaterialData.h +++ b/src/Magnum/Trade/PhongMaterialData.h @@ -38,7 +38,7 @@ namespace Magnum { namespace Trade { /** @brief Phong material data */ -class MAGNUM_EXPORT PhongMaterialData: public AbstractMaterialData { +class MAGNUM_TRADE_EXPORT PhongMaterialData: public AbstractMaterialData { public: enum: UnsignedInt { AmbientTextureID = 0, /**< Ambient texture ID for mapping with texture coordinates */ @@ -165,10 +165,10 @@ class MAGNUM_EXPORT PhongMaterialData: public AbstractMaterialData { CORRADE_ENUMSET_OPERATORS(PhongMaterialData::Flags) /** @debugoperatorclassenum{PhongMaterialData,PhongMaterialData::Flag} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, PhongMaterialData::Flag value); +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, PhongMaterialData::Flag value); /** @debugoperatorclassenum{PhongMaterialData,PhongMaterialData::Flags} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, PhongMaterialData::Flags value); +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, PhongMaterialData::Flags value); /* Ugly as hell. */ diff --git a/src/Magnum/Trade/SceneData.h b/src/Magnum/Trade/SceneData.h index 3d0cec943..5c05f38e2 100644 --- a/src/Magnum/Trade/SceneData.h +++ b/src/Magnum/Trade/SceneData.h @@ -33,14 +33,14 @@ #include #include "Magnum/Types.h" -#include "Magnum/visibility.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { /** @brief Scene data */ -class MAGNUM_EXPORT SceneData { +class MAGNUM_TRADE_EXPORT SceneData { public: /** * @brief Constructor diff --git a/src/Magnum/Trade/Test/CMakeLists.txt b/src/Magnum/Trade/Test/CMakeLists.txt index 3e6218db9..0dc1635f8 100644 --- a/src/Magnum/Trade/Test/CMakeLists.txt +++ b/src/Magnum/Trade/Test/CMakeLists.txt @@ -34,22 +34,22 @@ endif() configure_file(${CMAKE_CURRENT_SOURCE_DIR}/configure.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/configure.h) -corrade_add_test(TradeAbstractImageConverterTest AbstractImageConverterTest.cpp LIBRARIES Magnum) +corrade_add_test(TradeAbstractImageConverterTest AbstractImageConverterTest.cpp LIBRARIES MagnumTrade) target_include_directories(TradeAbstractImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) corrade_add_test(TradeAbstractImporterTest AbstractImporterTest.cpp - LIBRARIES Magnum + LIBRARIES MagnumTrade FILES file.bin) target_include_directories(TradeAbstractImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) -corrade_add_test(TradeCameraDataTest CameraDataTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeImageDataTest ImageDataTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeLightDataTest LightDataTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeMaterialDataTest MaterialDataTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeMeshData2DTest MeshData2DTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeMeshData3DTest MeshData3DTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeObjectData2DTest ObjectData2DTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeObjectData3DTest ObjectData3DTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeSceneDataTest SceneDataTest.cpp LIBRARIES Magnum) -corrade_add_test(TradeTextureDataTest TextureDataTest.cpp LIBRARIES Magnum) +corrade_add_test(TradeCameraDataTest CameraDataTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeImageDataTest ImageDataTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeLightDataTest LightDataTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeMaterialDataTest MaterialDataTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeMeshData2DTest MeshData2DTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeMeshData3DTest MeshData3DTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeObjectData2DTest ObjectData2DTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeObjectData3DTest ObjectData3DTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeSceneDataTest SceneDataTest.cpp LIBRARIES MagnumTrade) +corrade_add_test(TradeTextureDataTest TextureDataTest.cpp LIBRARIES MagnumTrade) set_target_properties( TradeAbstractImageConverterTest diff --git a/src/Magnum/Trade/TextureData.h b/src/Magnum/Trade/TextureData.h index 7afc330f3..581f29d14 100644 --- a/src/Magnum/Trade/TextureData.h +++ b/src/Magnum/Trade/TextureData.h @@ -31,7 +31,7 @@ #include "Magnum/Array.h" #include "Magnum/Sampler.h" -#include "Magnum/visibility.h" +#include "Magnum/Trade/visibility.h" namespace Magnum { namespace Trade { @@ -118,8 +118,8 @@ class TextureData { const void* _importerState; }; -/** @debugoperatorclassenum{Magnum::Trade::TextureData,Magnum::Trade::TextureData::Type} */ -MAGNUM_EXPORT Debug& operator<<(Debug& debug, TextureData::Type value); +/** @debugoperatorclassenum{TextureData,TextureData::Type} */ +MAGNUM_TRADE_EXPORT Debug& operator<<(Debug& debug, TextureData::Type value); }} diff --git a/src/Magnum/Trade/visibility.h b/src/Magnum/Trade/visibility.h new file mode 100644 index 000000000..ef36e84c2 --- /dev/null +++ b/src/Magnum/Trade/visibility.h @@ -0,0 +1,48 @@ +#ifndef Magnum_Trade_visibility_h +#define Magnum_Trade_visibility_h +/* + This file is part of Magnum. + + Copyright © 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 + Vladimír Vondruš + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include + +#include "Magnum/configure.h" + +#ifndef DOXYGEN_GENERATING_OUTPUT +#ifndef MAGNUM_BUILD_STATIC + #ifdef MagnumTrade_EXPORTS + #define MAGNUM_TRADE_EXPORT CORRADE_VISIBILITY_EXPORT + #else + #define MAGNUM_TRADE_EXPORT CORRADE_VISIBILITY_IMPORT + #endif +#else + #define MAGNUM_TRADE_EXPORT CORRADE_VISIBILITY_STATIC +#endif +#define MAGNUM_TRADE_LOCAL CORRADE_VISIBILITY_LOCAL +#else +#define MAGNUM_TRADE_EXPORT +#define MAGNUM_TRADE_LOCAL +#endif + +#endif diff --git a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt index ba2431239..0ec1a2f0a 100644 --- a/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_STATIC) set(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC 1) endif() diff --git a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt index 433b047c0..f3ad5369d 100644 --- a/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_STATIC) set(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC 1) endif() @@ -40,7 +42,7 @@ add_plugin(AnyImageConverter if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) set_target_properties(AnyImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(AnyImageConverter PUBLIC Magnum) +target_link_libraries(AnyImageConverter PUBLIC MagnumTrade) install(FILES AnyImageConverter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) diff --git a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt index 97d74e9ca..7c56fa1f9 100644 --- a/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt @@ -49,7 +49,7 @@ else() ${CMAKE_CURRENT_BINARY_DIR}/configure.h) endif() -corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES Magnum) +corrade_add_test(AnyImageConverterTest Test.cpp LIBRARIES MagnumTrade) if(NOT BUILD_PLUGINS_STATIC) target_include_directories(AnyImageConverterTest PRIVATE $) else() diff --git a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt index 3c67596fd..ef14ccc8d 100644 --- a/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_STATIC) set(MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC 1) endif() @@ -40,7 +42,7 @@ add_plugin(AnyImageImporter if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) set_target_properties(AnyImageImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(AnyImageImporter PUBLIC Magnum) +target_link_libraries(AnyImageImporter PUBLIC MagnumTrade) install(FILES AnyImageImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) diff --git a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt index 45a1ec4ae..a59c0a86b 100644 --- a/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt @@ -50,7 +50,7 @@ else() endif() corrade_add_test(AnyImageImporterTest Test.cpp - LIBRARIES Magnum + LIBRARIES MagnumTrade FILES ../../TgaImporter/Test/file.tga) if(NOT BUILD_PLUGINS_STATIC) diff --git a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt index 5e6bd2324..35bfdc22a 100644 --- a/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_STATIC) set(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC 1) endif() @@ -40,7 +42,7 @@ add_plugin(AnySceneImporter if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) set_target_properties(AnySceneImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(AnySceneImporter PUBLIC Magnum) +target_link_libraries(AnySceneImporter PUBLIC MagnumTrade) install(FILES AnySceneImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) diff --git a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt index 92cf5dfef..aa1d4ddd6 100644 --- a/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt @@ -50,7 +50,7 @@ else() endif() corrade_add_test(AnySceneImporterTest Test.cpp - LIBRARIES Magnum + LIBRARIES MagnumTrade FILES ../../ObjImporter/Test/pointMesh.obj) if(NOT BUILD_PLUGINS_STATIC) diff --git a/src/MagnumPlugins/MagnumFont/CMakeLists.txt b/src/MagnumPlugins/MagnumFont/CMakeLists.txt index f091b3811..74cd04202 100644 --- a/src/MagnumPlugins/MagnumFont/CMakeLists.txt +++ b/src/MagnumPlugins/MagnumFont/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_PLUGINS_STATIC) set(MAGNUM_MAGNUMFONT_BUILD_STATIC 1) endif() diff --git a/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt b/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt index 68e60e4a9..bb01ff293 100644 --- a/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt +++ b/src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt @@ -48,7 +48,7 @@ else() endif() corrade_add_test(MagnumFontGLTest MagnumFontGLTest.cpp - LIBRARIES MagnumText MagnumOpenGLTester + LIBRARIES MagnumText MagnumTrade MagnumOpenGLTester FILES font.conf font.tga) diff --git a/src/MagnumPlugins/MagnumFontConverter/CMakeLists.txt b/src/MagnumPlugins/MagnumFontConverter/CMakeLists.txt index 1882bf1b9..acf964c12 100644 --- a/src/MagnumPlugins/MagnumFontConverter/CMakeLists.txt +++ b/src/MagnumPlugins/MagnumFontConverter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_PLUGINS_STATIC) set(MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC 1) endif() diff --git a/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt b/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt index eab2b1d31..7602777cd 100644 --- a/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt @@ -45,7 +45,7 @@ else() endif() corrade_add_test(MagnumFontConverterGLTest MagnumFontConverterGLTest.cpp - LIBRARIES MagnumText MagnumOpenGLTester) + LIBRARIES MagnumText MagnumTrade MagnumOpenGLTester) if(NOT BUILD_PLUGINS_STATIC) target_include_directories(MagnumFontConverterGLTest PRIVATE $) else() diff --git a/src/MagnumPlugins/ObjImporter/CMakeLists.txt b/src/MagnumPlugins/ObjImporter/CMakeLists.txt index 5890b541b..f9b51fbb4 100644 --- a/src/MagnumPlugins/ObjImporter/CMakeLists.txt +++ b/src/MagnumPlugins/ObjImporter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_PLUGINS_STATIC) set(MAGNUM_OBJIMPORTER_BUILD_STATIC 1) endif() @@ -40,7 +42,7 @@ add_plugin(ObjImporter if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) set_target_properties(ObjImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(ObjImporter PUBLIC Magnum MagnumMeshTools) +target_link_libraries(ObjImporter PUBLIC MagnumTrade MagnumMeshTools) install(FILES ObjImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/ObjImporter) diff --git a/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt b/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt index 18527b4ca..40da8140b 100644 --- a/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt @@ -47,7 +47,7 @@ else() endif() corrade_add_test(ObjImporterTest Test.cpp - LIBRARIES Magnum + LIBRARIES MagnumTrade FILES emptyFile.obj keywords.obj diff --git a/src/MagnumPlugins/TgaImageConverter/CMakeLists.txt b/src/MagnumPlugins/TgaImageConverter/CMakeLists.txt index 8750d947c..f21a6ebcc 100644 --- a/src/MagnumPlugins/TgaImageConverter/CMakeLists.txt +++ b/src/MagnumPlugins/TgaImageConverter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_PLUGINS_STATIC) set(MAGNUM_TGAIMAGECONVERTER_BUILD_STATIC 1) endif() @@ -40,7 +42,7 @@ add_plugin(TgaImageConverter if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) set_target_properties(TgaImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(TgaImageConverter PUBLIC Magnum) +target_link_libraries(TgaImageConverter PUBLIC MagnumTrade) install(FILES TgaImageConverter.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImageConverter) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImageConverter) diff --git a/src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt b/src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt index 221d2086f..13d80e97f 100644 --- a/src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt @@ -43,7 +43,8 @@ else() ${CMAKE_CURRENT_BINARY_DIR}/configure.h) endif() -corrade_add_test(TgaImageConverterTest TgaImageConverterTest.cpp LIBRARIES Magnum) +corrade_add_test(TgaImageConverterTest TgaImageConverterTest.cpp + LIBRARIES MagnumTrade) if(NOT BUILD_PLUGINS_STATIC) target_include_directories(TgaImageConverterTest PRIVATE $) else() diff --git a/src/MagnumPlugins/TgaImporter/CMakeLists.txt b/src/MagnumPlugins/TgaImporter/CMakeLists.txt index ac4f3cebb..a23fca09a 100644 --- a/src/MagnumPlugins/TgaImporter/CMakeLists.txt +++ b/src/MagnumPlugins/TgaImporter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_PLUGINS_STATIC) set(MAGNUM_TGAIMPORTER_BUILD_STATIC 1) endif() @@ -41,7 +43,7 @@ add_plugin(TgaImporter if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) set_target_properties(TgaImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) endif() -target_link_libraries(TgaImporter PUBLIC Magnum) +target_link_libraries(TgaImporter PUBLIC MagnumTrade) install(FILES TgaImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImporter) diff --git a/src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt b/src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt index c3772798c..5930528b0 100644 --- a/src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt +++ b/src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt @@ -47,7 +47,7 @@ else() endif() corrade_add_test(TgaImporterTest TgaImporterTest.cpp - LIBRARIES Magnum + LIBRARIES MagnumTrade FILES file.tga) if(NOT BUILD_PLUGINS_STATIC) target_include_directories(TgaImporterTest PRIVATE $) diff --git a/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt b/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt index a46fdf960..12de91be2 100644 --- a/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt +++ b/src/MagnumPlugins/WavAudioImporter/CMakeLists.txt @@ -23,6 +23,8 @@ # DEALINGS IN THE SOFTWARE. # +find_package(Corrade REQUIRED PluginManager) + if(BUILD_PLUGINS_STATIC) set(MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC 1) endif()