From a2376f4ded447d9d19cc8978f18319bde09484d7 Mon Sep 17 00:00:00 2001 From: Leander Beernaert Date: Wed, 19 Feb 2020 16:24:53 +0100 Subject: [PATCH] CMake: Fix tst_plugin It is not possible to exclude targets based on the build configuration in CMake. loadDebugPlugin() and loadReleasePlugin() will always fail as both debug and release plugins are built regardless of the build configuration. This patch adds the CMAKE_BUILD define and skips the opposite test on Windows. E.g.: With config = Debug, the loadReleasePlugin() test is skipped and viceversa. Change-Id: I2659882604bb39eb11d3e9e2b2b37a2972475285 Reviewed-by: Alexandru Croitor --- tests/auto/corelib/plugin/qplugin/CMakeLists.txt | 2 ++ tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/tests/auto/corelib/plugin/qplugin/CMakeLists.txt b/tests/auto/corelib/plugin/qplugin/CMakeLists.txt index efc810075a3..b2829099aa2 100644 --- a/tests/auto/corelib/plugin/qplugin/CMakeLists.txt +++ b/tests/auto/corelib/plugin/qplugin/CMakeLists.txt @@ -21,5 +21,7 @@ add_qt_test(tst_qplugin TESTDATA ${test_data} ) +target_compile_definitions(tst_qplugin PRIVATE CMAKE_BUILD=1) + add_dependencies(tst_qplugin invalidplugin debugplugin releaseplugin) # special case end diff --git a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp index aa85a7c35ba..644b8b700d0 100644 --- a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp +++ b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp @@ -81,6 +81,9 @@ void tst_QPlugin::loadDebugPlugin() QObject *object = loader.instance(); QVERIFY(object != 0); #else +# if defined(CMAKE_BUILD) && defined(QT_NO_DEBUG) + QSKIP("Skipping test as it is not possible to disable build targets based on configuration with CMake"); +# endif // loading a plugin is dependent on which lib we are running against # if defined(QT_NO_DEBUG) // release build, we cannot load debug plugins @@ -111,6 +114,9 @@ void tst_QPlugin::loadReleasePlugin() QObject *object = loader.instance(); QVERIFY(object != 0); #else +# if defined(CMAKE_BUILD) && !defined(QT_NO_DEBUG) + QSKIP("Skipping test as it is not possible to disable build targets based on configuration with CMake"); +# endif // loading a plugin is dependent on which lib we are running against # if defined(QT_NO_DEBUG) // release build, we can load debug plugins