From 63a8df10759f42d186746f10a8be9aff8ee63831 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 25 May 2021 18:50:23 +0200 Subject: [PATCH] CMake: make dynamic plugins dependencies of tests that use CompareImage. So when building just a particular test, the relevant plugins get implicitly built as well without having to build everything. --- src/Magnum/DebugTools/Test/CMakeLists.txt | 38 ++++++++++++++++ src/Magnum/GL/Test/CMakeLists.txt | 8 ++++ src/Magnum/MeshTools/Test/CMakeLists.txt | 8 ++++ src/Magnum/Shaders/Test/CMakeLists.txt | 48 +++++++++++++++++++++ src/Magnum/TextureTools/Test/CMakeLists.txt | 8 ++++ src/Magnum/Vk/Test/CMakeLists.txt | 8 ++++ 6 files changed, 118 insertions(+) diff --git a/src/Magnum/DebugTools/Test/CMakeLists.txt b/src/Magnum/DebugTools/Test/CMakeLists.txt index b42d79ded..764c463eb 100644 --- a/src/Magnum/DebugTools/Test/CMakeLists.txt +++ b/src/Magnum/DebugTools/Test/CMakeLists.txt @@ -88,6 +88,20 @@ if(WITH_TRADE) if(WITH_TGAIMPORTER) target_link_libraries(DebugToolsCompareImageTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGECONVERTER) + add_dependencies(DebugToolsCompareImageTest AnyImageConverter) + endif() + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(DebugToolsCompareImageTest AnyImageImporter) + endif() + if(WITH_TGAIMAGECONVERTER) + add_dependencies(DebugToolsCompareImageTest TgaImageConverter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(DebugToolsCompareImageTest TgaImporter) + endif() endif() endif() @@ -130,6 +144,20 @@ if(TARGET_GL) if(WITH_TGAIMPORTER) target_link_libraries(DebugToolsScreenshotGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGECONVERTER) + add_dependencies(DebugToolsScreenshotGLTest AnyImageConverter) + endif() + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(DebugToolsScreenshotGLTest AnyImageImporter) + endif() + if(WITH_TGAIMAGECONVERTER) + add_dependencies(DebugToolsScreenshotGLTest TgaImageConverter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(DebugToolsScreenshotGLTest TgaImporter) + endif() endif() if(CORRADE_BUILD_STATIC AND NOT BUILD_PLUGINS_STATIC) @@ -164,6 +192,16 @@ if(TARGET_GL) target_link_libraries(DebugToolsForceRendererGLTest PRIVATE TgaImporter) target_link_libraries(DebugToolsObjectRendererGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(DebugToolsForceRendererGLTest AnyImageImporter) + add_dependencies(DebugToolsObjectRendererGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(DebugToolsForceRendererGLTest TgaImporter) + add_dependencies(DebugToolsObjectRendererGLTest TgaImporter) + endif() endif() endif() endif() diff --git a/src/Magnum/GL/Test/CMakeLists.txt b/src/Magnum/GL/Test/CMakeLists.txt index 37aac840a..60e0de0b2 100644 --- a/src/Magnum/GL/Test/CMakeLists.txt +++ b/src/Magnum/GL/Test/CMakeLists.txt @@ -168,6 +168,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(GLRendererGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(GLRendererGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(GLRendererGLTest TgaImporter) + endif() endif() corrade_add_test(GLShaderGLTest ShaderGLTest.cpp diff --git a/src/Magnum/MeshTools/Test/CMakeLists.txt b/src/Magnum/MeshTools/Test/CMakeLists.txt index 97cb61b0f..6d7f421ef 100644 --- a/src/Magnum/MeshTools/Test/CMakeLists.txt +++ b/src/Magnum/MeshTools/Test/CMakeLists.txt @@ -133,5 +133,13 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(MeshToolsCompileGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(MeshToolsCompileGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(MeshToolsCompileGLTest TgaImporter) + endif() endif() endif() diff --git a/src/Magnum/Shaders/Test/CMakeLists.txt b/src/Magnum/Shaders/Test/CMakeLists.txt index c99df3824..da3ceb234 100644 --- a/src/Magnum/Shaders/Test/CMakeLists.txt +++ b/src/Magnum/Shaders/Test/CMakeLists.txt @@ -121,6 +121,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(ShadersDistanceFieldVectorGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(ShadersDistanceFieldVectorGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(ShadersDistanceFieldVectorGLTest TgaImporter) + endif() endif() set(ShadersFlatGLTest_SRCS FlatGLTest.cpp) @@ -164,6 +172,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(ShadersFlatGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(ShadersFlatGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(ShadersFlatGLTest TgaImporter) + endif() endif() set(ShadersMeshVisualizerGLTest_SRCS MeshVisualizerGLTest.cpp) @@ -227,6 +243,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(ShadersMeshVisualizerGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(ShadersMeshVisualizerGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(ShadersMeshVisualizerGLTest TgaImporter) + endif() endif() set(ShadersPhongGLTest_SRCS PhongGLTest.cpp) @@ -293,6 +317,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(ShadersPhongGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(ShadersPhongGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(ShadersPhongGLTest TgaImporter) + endif() endif() set(ShadersVectorGLTest_SRCS VectorGLTest.cpp) @@ -322,6 +354,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(ShadersVectorGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(ShadersVectorGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(ShadersVectorGLTest TgaImporter) + endif() endif() set(ShadersVertexColorGLTest_SRCS VertexColorGLTest.cpp) @@ -350,6 +390,14 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(ShadersVertexColorGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(ShadersVertexColorGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(ShadersVertexColorGLTest TgaImporter) + endif() endif() corrade_add_test(ShadersGLBenchmark ShadersGLBenchmark.cpp diff --git a/src/Magnum/TextureTools/Test/CMakeLists.txt b/src/Magnum/TextureTools/Test/CMakeLists.txt index a3e67a301..cbabb8193 100644 --- a/src/Magnum/TextureTools/Test/CMakeLists.txt +++ b/src/Magnum/TextureTools/Test/CMakeLists.txt @@ -77,5 +77,13 @@ if(BUILD_GL_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(TextureToolsDistanceFieldGLTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(TextureToolsDistanceFieldGLTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(TextureToolsDistanceFieldGLTest TgaImporter) + endif() endif() endif() diff --git a/src/Magnum/Vk/Test/CMakeLists.txt b/src/Magnum/Vk/Test/CMakeLists.txt index 2c21967f2..4ea7d965f 100644 --- a/src/Magnum/Vk/Test/CMakeLists.txt +++ b/src/Magnum/Vk/Test/CMakeLists.txt @@ -236,6 +236,14 @@ if(BUILD_VK_TESTS) if(WITH_TGAIMPORTER) target_link_libraries(VkMeshVkTest PRIVATE TgaImporter) endif() + else() + # So the plugins get properly built when building the test + if(WITH_ANYIMAGEIMPORTER) + add_dependencies(VkMeshVkTest AnyImageImporter) + endif() + if(WITH_TGAIMPORTER) + add_dependencies(VkMeshVkTest TgaImporter) + endif() endif() corrade_add_test(VkPipelineVkTest PipelineVkTest.cpp