Browse Source

CMake: make it possible to build only some plugins as static.

It doesn't really work for tests that depend on more than one plugin
(because there i would need to handle all combinations, somehow), but it
does the job when the end user has such use case.
pull/481/head
Vladimír Vondruš 6 years ago
parent
commit
5327fe0ae2
  1. 5
      doc/building.dox
  2. 4
      src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt
  3. 6
      src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt
  4. 4
      src/MagnumPlugins/AnyImageConverter/CMakeLists.txt
  5. 6
      src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt
  6. 4
      src/MagnumPlugins/AnyImageImporter/CMakeLists.txt
  7. 6
      src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt
  8. 4
      src/MagnumPlugins/AnySceneConverter/CMakeLists.txt
  9. 6
      src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt
  10. 4
      src/MagnumPlugins/AnySceneImporter/CMakeLists.txt
  11. 6
      src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt
  12. 4
      src/MagnumPlugins/AnyShaderConverter/CMakeLists.txt
  13. 6
      src/MagnumPlugins/AnyShaderConverter/Test/CMakeLists.txt
  14. 3
      src/MagnumPlugins/CMakeLists.txt
  15. 4
      src/MagnumPlugins/MagnumFont/CMakeLists.txt
  16. 10
      src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt
  17. 6
      src/MagnumPlugins/MagnumFontConverter/CMakeLists.txt
  18. 6
      src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt
  19. 4
      src/MagnumPlugins/ObjImporter/CMakeLists.txt
  20. 6
      src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt
  21. 4
      src/MagnumPlugins/TgaImageConverter/CMakeLists.txt
  22. 6
      src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt
  23. 4
      src/MagnumPlugins/TgaImporter/CMakeLists.txt
  24. 6
      src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt
  25. 8
      src/MagnumPlugins/WavAudioImporter/CMakeLists.txt
  26. 6
      src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt

5
doc/building.dox

@ -649,7 +649,10 @@ Options controlling the build:
executable and won't use any dynamic plugins. executable and won't use any dynamic plugins.
- `BUILD_PLUGINS_STATIC` --- Build plugins as static. By default, plugins are - `BUILD_PLUGINS_STATIC` --- Build plugins as static. By default, plugins are
built as dynamic. Independent of the `BUILD_STATIC` option to allow having built as dynamic. Independent of the `BUILD_STATIC` option to allow having
static libraries with dynamic plugins and vice versa. static libraries with dynamic plugins and vice versa. To some extent it's
also possible to have only a subset of plugins built as static --- keep
this option `OFF` and enable `MAGNUM_<PLUGIN>_BUILD_STATIC` for particular
plugins instead.
- `BUILD_DEPRECATED` --- Include deprecated APIs in the build. Enabled by - `BUILD_DEPRECATED` --- Include deprecated APIs in the build. Enabled by
default to preserve backwards compatibility, disabling it forces you to default to preserve backwards compatibility, disabling it forces you to
update your code whenever there's a breaking API change. It's however update your code whenever there's a breaking API change. It's however

4
src/MagnumPlugins/AnyAudioImporter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(AnyAudioImporter
AnyAudioImporter.conf AnyAudioImporter.conf
AnyImporter.cpp AnyImporter.cpp
AnyImporter.h) AnyImporter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(AnyAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(AnyAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(AnyAudioImporter PUBLIC Magnum MagnumAudio) target_link_libraries(AnyAudioImporter PUBLIC Magnum MagnumAudio)
@ -55,7 +55,7 @@ install(FILES AnyImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyAudioImporter)
target_sources(AnyAudioImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(AnyAudioImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/AnyAudioImporter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC)
set(ANYAUDIOIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:AnyAudioImporter>) set(ANYAUDIOIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:AnyAudioImporter>)
if(WITH_WAVAUDIOIMPORTER) if(WITH_WAVAUDIOIMPORTER)
set(WAVAUDIOIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:WavAudioImporter>) set(WAVAUDIOIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:WavAudioImporter>)
@ -51,7 +51,7 @@ corrade_add_test(AnyAudioImporterTest AnyAudioImporterTest.cpp
FILES FILES
../../WavAudioImporter/Test/stereo8.wav) ../../WavAudioImporter/Test/stereo8.wav)
target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnyAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC)
target_link_libraries(AnyAudioImporterTest PRIVATE AnyAudioImporter) target_link_libraries(AnyAudioImporterTest PRIVATE AnyAudioImporter)
if(WITH_WAVAUDIOIMPORTER) if(WITH_WAVAUDIOIMPORTER)
target_link_libraries(AnyAudioImporterTest PRIVATE WavAudioImporter) target_link_libraries(AnyAudioImporterTest PRIVATE WavAudioImporter)
@ -64,7 +64,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(AnyAudioImporterTest PROPERTIES FOLDER "MagnumPlugins/AnyAudioImporter/Test") set_target_properties(AnyAudioImporterTest PROPERTIES FOLDER "MagnumPlugins/AnyAudioImporter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_ANYAUDIOIMPORTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/AnyImageConverter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(AnyImageConverter
AnyImageConverter.conf AnyImageConverter.conf
AnyImageConverter.cpp AnyImageConverter.cpp
AnyImageConverter.h) AnyImageConverter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(AnyImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(AnyImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(AnyImageConverter PUBLIC MagnumTrade) target_link_libraries(AnyImageConverter PUBLIC MagnumTrade)
@ -55,7 +55,7 @@ install(FILES AnyImageConverter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageConverter)
target_sources(AnyImageConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(AnyImageConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/AnyImageConverter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC)
set(ANYIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:AnyImageConverter>) set(ANYIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:AnyImageConverter>)
if(WITH_TGAIMAGECONVERTER) if(WITH_TGAIMAGECONVERTER)
set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>) set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>)
@ -49,7 +49,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/configure.h
corrade_add_test(AnyImageConverterTest AnyImageConverterTest.cpp corrade_add_test(AnyImageConverterTest AnyImageConverterTest.cpp
LIBRARIES MagnumTrade) LIBRARIES MagnumTrade)
target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnyImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC)
target_link_libraries(AnyImageConverterTest PRIVATE AnyImageConverter) target_link_libraries(AnyImageConverterTest PRIVATE AnyImageConverter)
if(WITH_TGAIMAGECONVERTER) if(WITH_TGAIMAGECONVERTER)
target_link_libraries(AnyImageConverterTest PRIVATE TgaImageConverter) target_link_libraries(AnyImageConverterTest PRIVATE TgaImageConverter)
@ -62,7 +62,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(AnyImageConverterTest PROPERTIES FOLDER "MagnumPlugins/AnyImageConverter/Test") set_target_properties(AnyImageConverterTest PROPERTIES FOLDER "MagnumPlugins/AnyImageConverter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_ANYIMAGECONVERTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/AnyImageImporter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(AnyImageImporter
AnyImageImporter.conf AnyImageImporter.conf
AnyImageImporter.cpp AnyImageImporter.cpp
AnyImageImporter.h) AnyImageImporter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(AnyImageImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(AnyImageImporter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(AnyImageImporter PUBLIC MagnumTrade) target_link_libraries(AnyImageImporter PUBLIC MagnumTrade)
@ -55,7 +55,7 @@ install(FILES AnyImageImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyImageImporter)
target_sources(AnyImageImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(AnyImageImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/AnyImageImporter/Test/CMakeLists.txt

@ -35,7 +35,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC)
set(ANYIMAGEIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:AnyImageImporter>) set(ANYIMAGEIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:AnyImageImporter>)
if(WITH_TGAIMPORTER) if(WITH_TGAIMPORTER)
set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>) set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>)
@ -61,7 +61,7 @@ corrade_add_test(AnyImageImporterTest AnyImageImporterTest.cpp
rgb.tga rgb.tga
rgba_dxt1.dds) rgba_dxt1.dds)
target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnyImageImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC)
target_link_libraries(AnyImageImporterTest PRIVATE AnyImageImporter) target_link_libraries(AnyImageImporterTest PRIVATE AnyImageImporter)
if(WITH_TGAIMPORTER) if(WITH_TGAIMPORTER)
target_link_libraries(AnyImageImporterTest PRIVATE TgaImporter) target_link_libraries(AnyImageImporterTest PRIVATE TgaImporter)
@ -74,7 +74,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(AnyImageImporterTest PROPERTIES FOLDER "MagnumPlugins/AnyImageImporter/Test") set_target_properties(AnyImageImporterTest PROPERTIES FOLDER "MagnumPlugins/AnyImageImporter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_ANYIMAGEIMPORTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/AnySceneConverter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(AnySceneConverter
AnySceneConverter.conf AnySceneConverter.conf
AnySceneConverter.cpp AnySceneConverter.cpp
AnySceneConverter.h) AnySceneConverter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_ANYSCENECONVERTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(AnySceneConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(AnySceneConverter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(AnySceneConverter PUBLIC MagnumTrade) target_link_libraries(AnySceneConverter PUBLIC MagnumTrade)
@ -55,7 +55,7 @@ install(FILES AnySceneConverter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneConverter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneConverter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYSCENECONVERTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneConverter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneConverter)
target_sources(AnySceneConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(AnySceneConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/AnySceneConverter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_ANYSCENECONVERTER_BUILD_STATIC)
set(ANYSCENECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:AnySceneConverter>) set(ANYSCENECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:AnySceneConverter>)
if(WITH_TGAIMAGECONVERTER) if(WITH_TGAIMAGECONVERTER)
set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>) set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>)
@ -49,7 +49,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/configure.h
corrade_add_test(AnySceneConverterTest AnySceneConverterTest.cpp corrade_add_test(AnySceneConverterTest AnySceneConverterTest.cpp
LIBRARIES MagnumTrade) LIBRARIES MagnumTrade)
target_include_directories(AnySceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnySceneConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYSCENECONVERTER_BUILD_STATIC)
target_link_libraries(AnySceneConverterTest PRIVATE AnySceneConverter) target_link_libraries(AnySceneConverterTest PRIVATE AnySceneConverter)
if(WITH_TGAIMAGECONVERTER) if(WITH_TGAIMAGECONVERTER)
target_link_libraries(AnySceneConverterTest PRIVATE TgaImageConverter) target_link_libraries(AnySceneConverterTest PRIVATE TgaImageConverter)
@ -62,7 +62,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(AnySceneConverterTest PROPERTIES FOLDER "MagnumPlugins/AnySceneConverter/Test") set_target_properties(AnySceneConverterTest PROPERTIES FOLDER "MagnumPlugins/AnySceneConverter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_ANYSCENECONVERTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/AnySceneImporter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(AnySceneImporter
AnySceneImporter.conf AnySceneImporter.conf
AnySceneImporter.cpp AnySceneImporter.cpp
AnySceneImporter.h) AnySceneImporter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(AnySceneImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(AnySceneImporter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(AnySceneImporter PUBLIC MagnumTrade) target_link_libraries(AnySceneImporter PUBLIC MagnumTrade)
@ -55,7 +55,7 @@ install(FILES AnySceneImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnySceneImporter)
target_sources(AnySceneImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(AnySceneImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/AnySceneImporter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC)
set(ANYSCENEIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:AnySceneImporter>) set(ANYSCENEIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:AnySceneImporter>)
if(WITH_OBJIMPORTER) if(WITH_OBJIMPORTER)
set(OBJIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:ObjImporter>) set(OBJIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:ObjImporter>)
@ -51,7 +51,7 @@ corrade_add_test(AnySceneImporterTest AnySceneImporterTest.cpp
FILES FILES
../../ObjImporter/Test/pointMesh.obj) ../../ObjImporter/Test/pointMesh.obj)
target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnySceneImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC)
target_link_libraries(AnySceneImporterTest PRIVATE AnySceneImporter) target_link_libraries(AnySceneImporterTest PRIVATE AnySceneImporter)
if(WITH_OBJIMPORTER) if(WITH_OBJIMPORTER)
target_link_libraries(AnySceneImporterTest PRIVATE ObjImporter) target_link_libraries(AnySceneImporterTest PRIVATE ObjImporter)
@ -64,7 +64,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(AnySceneImporterTest PROPERTIES FOLDER "MagnumPlugins/AnySceneImporter/Test") set_target_properties(AnySceneImporterTest PROPERTIES FOLDER "MagnumPlugins/AnySceneImporter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_ANYSCENEIMPORTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/AnyShaderConverter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(AnyShaderConverter
AnyShaderConverter.conf AnyShaderConverter.conf
AnyConverter.cpp AnyConverter.cpp
AnyConverter.h) AnyConverter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_ANYSHADERCONVERTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(AnyShaderConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(AnyShaderConverter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(AnyShaderConverter PUBLIC MagnumShaderTools) target_link_libraries(AnyShaderConverter PUBLIC MagnumShaderTools)
@ -55,7 +55,7 @@ install(FILES AnyConverter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyShaderConverter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyShaderConverter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYSHADERCONVERTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyShaderConverter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/AnyShaderConverter)
target_sources(AnyShaderConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(AnyShaderConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/AnyShaderConverter/Test/CMakeLists.txt

@ -35,7 +35,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_ANYSHADERCONVERTER_BUILD_STATIC)
set(ANYSHADERCONVERTER_PLUGIN_FILENAME $<TARGET_FILE:AnyShaderConverter>) set(ANYSHADERCONVERTER_PLUGIN_FILENAME $<TARGET_FILE:AnyShaderConverter>)
endif() endif()
@ -51,14 +51,14 @@ corrade_add_test(AnyShaderConverterTest AnyConverterTest.cpp
file.glsl file.glsl
file.spv) file.spv)
target_include_directories(AnyShaderConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(AnyShaderConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_ANYSHADERCONVERTER_BUILD_STATIC)
target_link_libraries(AnyShaderConverterTest PRIVATE AnyShaderConverter) target_link_libraries(AnyShaderConverterTest PRIVATE AnyShaderConverter)
else() else()
# So the plugins get properly built when building the test # So the plugins get properly built when building the test
add_dependencies(AnyShaderConverterTest AnyShaderConverter) add_dependencies(AnyShaderConverterTest AnyShaderConverter)
endif() endif()
set_target_properties(AnyShaderConverterTest PROPERTIES FOLDER "MagnumPlugins/AnyShaderConverter/Test") set_target_properties(AnyShaderConverterTest PROPERTIES FOLDER "MagnumPlugins/AnyShaderConverter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_ANYSHADERCONVERTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

3
src/MagnumPlugins/CMakeLists.txt

@ -25,7 +25,8 @@
# Wrapper for creating given plugin type # Wrapper for creating given plugin type
macro(add_plugin plugin_name debug_install_dirs release_install_dirs metadata_file) macro(add_plugin plugin_name debug_install_dirs release_install_dirs metadata_file)
if(NOT BUILD_PLUGINS_STATIC) string(TOUPPER ${plugin_name} PLUGIN_NAME)
if(NOT MAGNUM_${PLUGIN_NAME}_BUILD_STATIC)
corrade_add_plugin(${plugin_name} "${debug_install_dirs}" "${release_install_dirs}" ${metadata_file} ${ARGN}) corrade_add_plugin(${plugin_name} "${debug_install_dirs}" "${release_install_dirs}" ${metadata_file} ${ARGN})
set_target_properties(${plugin_name} ${plugin_name}-metadata PROPERTIES FOLDER "MagnumPlugins/${plugin_name}") set_target_properties(${plugin_name} ${plugin_name}-metadata PROPERTIES FOLDER "MagnumPlugins/${plugin_name}")
else() else()

4
src/MagnumPlugins/MagnumFont/CMakeLists.txt

@ -45,7 +45,7 @@ add_plugin(MagnumFont
MagnumFont.conf MagnumFont.conf
MagnumFont.cpp MagnumFont.cpp
MagnumFont.h) MagnumFont.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_MAGNUMFONT_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(MagnumFont PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(MagnumFont PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(MagnumFont PUBLIC Magnum MagnumText MagnumTrade) target_link_libraries(MagnumFont PUBLIC Magnum MagnumText MagnumTrade)
@ -64,7 +64,7 @@ install(FILES MagnumFont.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFont) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFont)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_MAGNUMFONT_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFont) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFont)
target_sources(MagnumFont INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(MagnumFont INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

10
src/MagnumPlugins/MagnumFont/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_MAGNUMFONT_BUILD_STATIC)
set(MAGNUMFONT_PLUGIN_FILENAME $<TARGET_FILE:MagnumFont>) set(MAGNUMFONT_PLUGIN_FILENAME $<TARGET_FILE:MagnumFont>)
set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>) set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>)
endif() endif()
@ -50,11 +50,11 @@ corrade_add_test(MagnumFontTest MagnumFontTest.cpp
font.conf font.conf
font.tga) font.tga)
target_include_directories(MagnumFontTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(MagnumFontTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_MAGNUMFONT_BUILD_STATIC)
target_link_libraries(MagnumFontTest PRIVATE MagnumFont TgaImporter) target_link_libraries(MagnumFontTest PRIVATE MagnumFont TgaImporter)
endif() endif()
set_target_properties(MagnumFontTest PROPERTIES FOLDER "MagnumPlugins/MagnumFont/Test") set_target_properties(MagnumFontTest PROPERTIES FOLDER "MagnumPlugins/MagnumFont/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_MAGNUMFONT_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such
@ -69,14 +69,14 @@ if(BUILD_GL_TESTS)
font.conf font.conf
font.tga) font.tga)
target_include_directories(MagnumFontGLTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(MagnumFontGLTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_MAGNUMFONT_BUILD_STATIC)
target_link_libraries(MagnumFontGLTest PRIVATE MagnumFont TgaImporter) target_link_libraries(MagnumFontGLTest PRIVATE MagnumFont TgaImporter)
else() else()
# So the plugins get properly built when building the test # So the plugins get properly built when building the test
add_dependencies(MagnumFontGLTest MagnumFont TgaImporter) add_dependencies(MagnumFontGLTest MagnumFont TgaImporter)
endif() endif()
set_target_properties(MagnumFontGLTest PROPERTIES FOLDER "MagnumPlugins/MagnumFont/Test") set_target_properties(MagnumFontGLTest PROPERTIES FOLDER "MagnumPlugins/MagnumFont/Test")
if((CORRADE_BUILD_STATIC OR MAGNUM_BUILD_STATIC) AND NOT BUILD_PLUGINS_STATIC) if((CORRADE_BUILD_STATIC OR MAGNUM_BUILD_STATIC) AND NOT MAGNUM_MAGNUMFONT_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the # That's generally okay, *except if* the build is static, the
# executable uses a plugin manager and needs to share globals with the # executable uses a plugin manager and needs to share globals with the

6
src/MagnumPlugins/MagnumFontConverter/CMakeLists.txt

@ -39,13 +39,13 @@ add_plugin(MagnumFontConverter
MagnumFontConverter.conf MagnumFontConverter.conf
MagnumFontConverter.cpp MagnumFontConverter.cpp
MagnumFontConverter.h) MagnumFontConverter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(MagnumFontConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(MagnumFontConverter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(MagnumFontConverter PUBLIC Magnum MagnumText MagnumTrade) target_link_libraries(MagnumFontConverter PUBLIC Magnum MagnumText MagnumTrade)
if(CORRADE_TARGET_WINDOWS) if(CORRADE_TARGET_WINDOWS)
target_link_libraries(MagnumFontConverter PUBLIC TgaImageConverter) target_link_libraries(MagnumFontConverter PUBLIC TgaImageConverter)
elseif(BUILD_PLUGINS_STATIC) elseif(MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC)
target_link_libraries(MagnumFontConverter INTERFACE TgaImageConverter) target_link_libraries(MagnumFontConverter INTERFACE TgaImageConverter)
endif() endif()
# Modify output location only if all are set, otherwise it makes no sense # Modify output location only if all are set, otherwise it makes no sense
@ -60,7 +60,7 @@ install(FILES MagnumFontConverter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFontConverter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFontConverter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFontConverter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/MagnumFontConverter)
target_sources(MagnumFontConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(MagnumFontConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/MagnumFontConverter/Test/CMakeLists.txt

@ -35,7 +35,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC)
set(MAGNUMFONTCONVERTER_PLUGIN_FILENAME $<TARGET_FILE:MagnumFontConverter>) set(MAGNUMFONTCONVERTER_PLUGIN_FILENAME $<TARGET_FILE:MagnumFontConverter>)
set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>) set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>)
if(WITH_TGAIMPORTER) if(WITH_TGAIMPORTER)
@ -55,7 +55,7 @@ corrade_add_test(MagnumFontConverterTest MagnumFontConverterTest.cpp
../../MagnumFont/Test/font.conf ../../MagnumFont/Test/font.conf
../../MagnumFont/Test/font.tga) ../../MagnumFont/Test/font.tga)
target_include_directories(MagnumFontConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(MagnumFontConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC)
target_link_libraries(MagnumFontConverterTest PRIVATE target_link_libraries(MagnumFontConverterTest PRIVATE
MagnumFontConverter) # TgaImageConverter should get linked transitively MagnumFontConverter) # TgaImageConverter should get linked transitively
if(WITH_TGAIMPORTER) if(WITH_TGAIMPORTER)
@ -69,7 +69,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(MagnumFontConverterTest PROPERTIES FOLDER "MagnumPlugins/MagnumFontConverter/Test") set_target_properties(MagnumFontConverterTest PROPERTIES FOLDER "MagnumPlugins/MagnumFontConverter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_MAGNUMFONTCONVERTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/ObjImporter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(ObjImporter
ObjImporter.conf ObjImporter.conf
ObjImporter.cpp ObjImporter.cpp
ObjImporter.h) ObjImporter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_OBJIMPORTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(ObjImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(ObjImporter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(ObjImporter PUBLIC MagnumTrade MagnumMeshTools) target_link_libraries(ObjImporter PUBLIC MagnumTrade MagnumMeshTools)
@ -55,7 +55,7 @@ install(FILES ObjImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/ObjImporter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/ObjImporter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_OBJIMPORTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/ObjImporter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/ObjImporter)
target_sources(ObjImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(ObjImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/ObjImporter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_OBJIMPORTER_BUILD_STATIC)
set(OBJIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:ObjImporter>) set(OBJIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:ObjImporter>)
endif() endif()
@ -64,14 +64,14 @@ corrade_add_test(ObjImporterTest ObjImporterTest.cpp
wrongNumberCount.obj wrongNumberCount.obj
wrongNumbers.obj) wrongNumbers.obj)
target_include_directories(ObjImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(ObjImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_OBJIMPORTER_BUILD_STATIC)
target_link_libraries(ObjImporterTest PRIVATE ObjImporter) target_link_libraries(ObjImporterTest PRIVATE ObjImporter)
else() else()
# So the plugins get properly built when building the test # So the plugins get properly built when building the test
add_dependencies(ObjImporterTest ObjImporter) add_dependencies(ObjImporterTest ObjImporter)
endif() endif()
set_target_properties(ObjImporterTest PROPERTIES FOLDER "MagnumPlugins/ObjImporter/Test") set_target_properties(ObjImporterTest PROPERTIES FOLDER "MagnumPlugins/ObjImporter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_OBJIMPORTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/TgaImageConverter/CMakeLists.txt

@ -39,7 +39,7 @@ add_plugin(TgaImageConverter
TgaImageConverter.conf TgaImageConverter.conf
TgaImageConverter.cpp TgaImageConverter.cpp
TgaImageConverter.h) TgaImageConverter.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_TGAIMAGECONVERTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(TgaImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(TgaImageConverter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(TgaImageConverter PUBLIC MagnumTrade) target_link_libraries(TgaImageConverter PUBLIC MagnumTrade)
@ -55,7 +55,7 @@ install(FILES TgaImageConverter.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_D
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImageConverter) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/configure.h DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImageConverter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_TGAIMAGECONVERTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImageConverter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImageConverter)
target_sources(TgaImageConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(TgaImageConverter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/TgaImageConverter/Test/CMakeLists.txt

@ -27,7 +27,7 @@
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_TGAIMAGECONVERTER_BUILD_STATIC)
set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>) set(TGAIMAGECONVERTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImageConverter>)
if(WITH_TGAIMPORTER) if(WITH_TGAIMPORTER)
set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>) set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>)
@ -43,7 +43,7 @@ file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/configure.h
corrade_add_test(TgaImageConverterTest TgaImageConverterTest.cpp corrade_add_test(TgaImageConverterTest TgaImageConverterTest.cpp
LIBRARIES MagnumTrade) LIBRARIES MagnumTrade)
target_include_directories(TgaImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(TgaImageConverterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_TGAIMAGECONVERTER_BUILD_STATIC)
target_link_libraries(TgaImageConverterTest PRIVATE TgaImageConverter) target_link_libraries(TgaImageConverterTest PRIVATE TgaImageConverter)
if(WITH_TGAIMPORTER) if(WITH_TGAIMPORTER)
target_link_libraries(TgaImageConverterTest PRIVATE TgaImporter) target_link_libraries(TgaImageConverterTest PRIVATE TgaImporter)
@ -56,7 +56,7 @@ else()
endif() endif()
endif() endif()
set_target_properties(TgaImageConverterTest PROPERTIES FOLDER "MagnumPlugins/TgaImageConverter/Test") set_target_properties(TgaImageConverterTest PROPERTIES FOLDER "MagnumPlugins/TgaImageConverter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_TGAIMAGECONVERTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

4
src/MagnumPlugins/TgaImporter/CMakeLists.txt

@ -40,7 +40,7 @@ add_plugin(TgaImporter
TgaImporter.cpp TgaImporter.cpp
TgaImporter.h TgaImporter.h
TgaHeader.h) TgaHeader.h)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_TGAIMPORTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(TgaImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(TgaImporter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(TgaImporter PUBLIC MagnumTrade) target_link_libraries(TgaImporter PUBLIC MagnumTrade)
@ -56,7 +56,7 @@ install(FILES TgaImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImporter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImporter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_TGAIMPORTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImporter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/TgaImporter)
target_sources(TgaImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(TgaImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/TgaImporter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_TGAIMPORTER_BUILD_STATIC)
set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>) set(TGAIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:TgaImporter>)
endif() endif()
@ -47,14 +47,14 @@ corrade_add_test(TgaImporterTest TgaImporterTest.cpp
LIBRARIES MagnumTrade LIBRARIES MagnumTrade
FILES file.tga) FILES file.tga)
target_include_directories(TgaImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(TgaImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_TGAIMPORTER_BUILD_STATIC)
target_link_libraries(TgaImporterTest PRIVATE TgaImporter) target_link_libraries(TgaImporterTest PRIVATE TgaImporter)
else() else()
# So the plugins get properly built when building the test # So the plugins get properly built when building the test
add_dependencies(TgaImporterTest TgaImporter) add_dependencies(TgaImporterTest TgaImporter)
endif() endif()
set_target_properties(TgaImporterTest PROPERTIES FOLDER "MagnumPlugins/TgaImporter/Test") set_target_properties(TgaImporterTest PROPERTIES FOLDER "MagnumPlugins/TgaImporter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_TGAIMPORTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

8
src/MagnumPlugins/WavAudioImporter/CMakeLists.txt

@ -39,10 +39,10 @@ add_library(WavAudioImporterObjects OBJECT
target_include_directories(WavAudioImporterObjects PUBLIC target_include_directories(WavAudioImporterObjects PUBLIC
$<TARGET_PROPERTY:Magnum,INTERFACE_INCLUDE_DIRECTORIES> $<TARGET_PROPERTY:Magnum,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:MagnumAudio,INTERFACE_INCLUDE_DIRECTORIES>) $<TARGET_PROPERTY:MagnumAudio,INTERFACE_INCLUDE_DIRECTORIES>)
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC)
target_compile_definitions(WavAudioImporterObjects PRIVATE "WavAudioImporterObjects_EXPORTS") target_compile_definitions(WavAudioImporterObjects PRIVATE "WavAudioImporterObjects_EXPORTS")
endif() endif()
if(NOT BUILD_PLUGINS_STATIC OR BUILD_STATIC_PIC) if(NOT MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC OR BUILD_STATIC_PIC)
set_target_properties(WavAudioImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(WavAudioImporterObjects PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
set_target_properties(WavAudioImporterObjects PROPERTIES FOLDER "MagnumPlugins/WavAudioImporter") set_target_properties(WavAudioImporterObjects PROPERTIES FOLDER "MagnumPlugins/WavAudioImporter")
@ -55,7 +55,7 @@ add_plugin(WavAudioImporter
WavImporter.cpp WavImporter.cpp
WavImporter.h WavImporter.h
$<TARGET_OBJECTS:WavAudioImporterObjects>) $<TARGET_OBJECTS:WavAudioImporterObjects>)
if(BUILD_PLUGINS_STATIC AND BUILD_STATIC_PIC) if(MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC AND BUILD_STATIC_PIC)
set_target_properties(WavAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON) set_target_properties(WavAudioImporter PROPERTIES POSITION_INDEPENDENT_CODE ON)
endif() endif()
target_link_libraries(WavAudioImporter PUBLIC Magnum MagnumAudio) target_link_libraries(WavAudioImporter PUBLIC Magnum MagnumAudio)
@ -71,7 +71,7 @@ install(FILES WavImporter.h ${CMAKE_CURRENT_BINARY_DIR}/configure.h
DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/WavAudioImporter) DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/WavAudioImporter)
# Automatic static plugin import # Automatic static plugin import
if(BUILD_PLUGINS_STATIC) if(MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC)
install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/WavAudioImporter) install(FILES importStaticPlugin.cpp DESTINATION ${MAGNUM_PLUGINS_INCLUDE_INSTALL_DIR}/WavAudioImporter)
target_sources(WavAudioImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp) target_sources(WavAudioImporter INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/importStaticPlugin.cpp)
endif() endif()

6
src/MagnumPlugins/WavAudioImporter/Test/CMakeLists.txt

@ -33,7 +33,7 @@ endif()
# https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade # https://gitlab.kitware.com/cmake/cmake/merge_requests/404) and since Corrade
# doesn't support dynamic plugins on iOS, this sorta works around that. Should # doesn't support dynamic plugins on iOS, this sorta works around that. Should
# be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6). # be revisited when updating Travis to newer Xcode (xcode7.3 has CMake 3.6).
if(NOT BUILD_PLUGINS_STATIC) if(NOT MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC)
set(WAVAUDIOIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:WavAudioImporter>) set(WAVAUDIOIMPORTER_PLUGIN_FILENAME $<TARGET_FILE:WavAudioImporter>)
endif() endif()
@ -94,7 +94,7 @@ corrade_add_test(WavAudioImporterTest WavImporterTest.cpp
surround51Channel16.wav surround51Channel16.wav
surround71Channel24.wav) surround71Channel24.wav)
target_include_directories(WavAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>) target_include_directories(WavAudioImporterTest PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>)
if(BUILD_PLUGINS_STATIC) if(MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC)
target_link_libraries(WavAudioImporterTest PRIVATE WavAudioImporter) target_link_libraries(WavAudioImporterTest PRIVATE WavAudioImporter)
else() else()
# So the plugins get properly built when building the test # So the plugins get properly built when building the test
@ -108,7 +108,7 @@ set_target_properties(
WavAudioImporterTest WavAudioImporterTest
WavAudioImporterWavHeaderTest WavAudioImporterWavHeaderTest
PROPERTIES FOLDER "MagnumPlugins/WavAudioImporter/Test") PROPERTIES FOLDER "MagnumPlugins/WavAudioImporter/Test")
if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) if(CORRADE_BUILD_STATIC AND NOT MAGNUM_WAVAUDIOIMPORTER_BUILD_STATIC)
# CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065). # CMake < 3.4 does this implicitly, but 3.4+ not anymore (see CMP0065).
# That's generally okay, *except if* the build is static, the executable # That's generally okay, *except if* the build is static, the executable
# uses a plugin manager and needs to share globals with the plugins (such # uses a plugin manager and needs to share globals with the plugins (such

Loading…
Cancel
Save