From 305ca7e4345da1fa558157d09a92a232653940a4 Mon Sep 17 00:00:00 2001 From: Eike Ziller Date: Fri, 11 Dec 2020 12:23:49 +0100 Subject: [PATCH] cmake build: Fix handling of test dependencies Test dependencies are not "real" code dependencies, they just declare that for testing the plugin the other plugin has to be loaded, even though it is _not_ a code dependency. Add PLUGIN_TEST_DEPENDS to add_qtc_plugin. We cannot assume that the target exists at that point, so adapt the usual pattern. Fixes: QTCREATORBUG-25024 Change-Id: I4165ff8df762309e0be0bfe9e8bedef796a3bf17 Reviewed-by: Christian Stenger Reviewed-by: Cristian Adam --- cmake/QtCreatorAPI.cmake | 11 ++++++++++- src/plugins/autotest/CMakeLists.txt | 7 ++----- src/plugins/clangcodemodel/CMakeLists.txt | 7 ++----- src/plugins/clangtools/CMakeLists.txt | 7 ++----- src/plugins/cppeditor/CMakeLists.txt | 1 + src/plugins/debugger/CMakeLists.txt | 1 + src/plugins/designer/CMakeLists.txt | 7 ++----- src/plugins/fakevim/CMakeLists.txt | 7 ++----- src/plugins/genericprojectmanager/CMakeLists.txt | 7 ++----- 9 files changed, 24 insertions(+), 31 deletions(-) diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake index a790483e91e..fcbb67e7352 100644 --- a/cmake/QtCreatorAPI.cmake +++ b/cmake/QtCreatorAPI.cmake @@ -277,7 +277,7 @@ function(add_qtc_plugin target_name) cmake_parse_arguments(_arg "SKIP_DEBUG_CMAKE_FILE_CHECK;SKIP_INSTALL;INTERNAL_ONLY;SKIP_TRANSLATION;EXPORT" "VERSION;COMPAT_VERSION;PLUGIN_JSON_IN;PLUGIN_PATH;PLUGIN_NAME;OUTPUT_NAME;BUILD_DEFAULT" - "CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;PUBLIC_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PLUGIN_DEPENDS;PLUGIN_RECOMMENDS;PROPERTIES" + "CONDITION;DEPENDS;PUBLIC_DEPENDS;DEFINES;PUBLIC_DEFINES;INCLUDES;PUBLIC_INCLUDES;SOURCES;EXPLICIT_MOC;SKIP_AUTOMOC;EXTRA_TRANSLATIONS;PLUGIN_DEPENDS;PLUGIN_RECOMMENDS;PLUGIN_TEST_DEPENDS;PROPERTIES" ${ARGN} ) @@ -363,6 +363,15 @@ function(add_qtc_plugin target_name) " { \"Name\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"optional\" }" ) endforeach(i) + foreach(i IN LISTS _arg_PLUGIN_TEST_DEPENDS) + if (i MATCHES "^QtCreator::") + string(REPLACE "QtCreator::" "" i ${i}) + endif() + set(_v ${IDE_VERSION}) + string(APPEND _arg_DEPENDENCY_STRING + " { \"Name\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"test\" }" + ) + endforeach(i) string(REPLACE "} {" "},\n {" _arg_DEPENDENCY_STRING "${_arg_DEPENDENCY_STRING}" diff --git a/src/plugins/autotest/CMakeLists.txt b/src/plugins/autotest/CMakeLists.txt index 18521d76084..1da654bdfd6 100644 --- a/src/plugins/autotest/CMakeLists.txt +++ b/src/plugins/autotest/CMakeLists.txt @@ -1,9 +1,6 @@ -if (WITH_TESTS) - set(TEST_COMPONENT QmakeProjectManager QtSupport) -endif() - add_qtc_plugin(AutoTest - PLUGIN_DEPENDS Core CppTools Debugger ProjectExplorer QmlJSTools TextEditor ${TEST_COMPONENT} + PLUGIN_DEPENDS Core CppTools Debugger ProjectExplorer QmlJSTools TextEditor + PLUGIN_TEST_DEPENDS QmakeProjectManager QtSupport QbsProjectManager SOURCES autotest.qrc autotest_global.h diff --git a/src/plugins/clangcodemodel/CMakeLists.txt b/src/plugins/clangcodemodel/CMakeLists.txt index 56ee68416de..ac90081b3a8 100644 --- a/src/plugins/clangcodemodel/CMakeLists.txt +++ b/src/plugins/clangcodemodel/CMakeLists.txt @@ -1,11 +1,8 @@ -if (WITH_TESTS) - set(TST_COMPONENT CppEditor QmakeProjectManager) -endif() - add_qtc_plugin(ClangCodeModel CONDITION TARGET libclang DEPENDS ClangSupport CPlusPlus - PLUGIN_DEPENDS Core CppTools TextEditor ${TST_COMPONENT} + PLUGIN_DEPENDS Core CppTools TextEditor + PLUGIN_TEST_DEPENDS CppEditor QmakeProjectManager SOURCES clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.h diff --git a/src/plugins/clangtools/CMakeLists.txt b/src/plugins/clangtools/CMakeLists.txt index 314edab2f3b..4db954d385a 100644 --- a/src/plugins/clangtools/CMakeLists.txt +++ b/src/plugins/clangtools/CMakeLists.txt @@ -1,14 +1,11 @@ -if (WITH_TESTS) - set(TST_COMPONENT QmakeProjectManager) -endif() - find_package(yaml-cpp QUIET MODULE) add_qtc_plugin(ClangTools CONDITION TARGET yaml-cpp DEPENDS ClangSupport yaml-cpp - PLUGIN_DEPENDS Core Debugger CppTools CppEditor ${TST_COMPONENT} + PLUGIN_DEPENDS Core Debugger CppTools CppEditor PLUGIN_RECOMMENDS CppEditor + PLUGIN_TEST_DEPENDS QmakeProjectManager QbsProjectManager INCLUDES ${CLANG_INCLUDE_DIRS} SOURCES clangfileinfo.h diff --git a/src/plugins/cppeditor/CMakeLists.txt b/src/plugins/cppeditor/CMakeLists.txt index d2a55ca8cfa..ca614cc90ae 100644 --- a/src/plugins/cppeditor/CMakeLists.txt +++ b/src/plugins/cppeditor/CMakeLists.txt @@ -1,6 +1,7 @@ add_qtc_plugin(CppEditor DEFINES CPPEDITOR_LIBRARY PLUGIN_DEPENDS Core CppTools ProjectExplorer TextEditor + PLUGIN_TEST_DEPENDS QmakeProjectManager SOURCES cppautocompleter.cpp cppautocompleter.h cppcodemodelinspectordialog.cpp cppcodemodelinspectordialog.h cppcodemodelinspectordialog.ui diff --git a/src/plugins/debugger/CMakeLists.txt b/src/plugins/debugger/CMakeLists.txt index bc05b7dbb19..0a9ec99a1f6 100644 --- a/src/plugins/debugger/CMakeLists.txt +++ b/src/plugins/debugger/CMakeLists.txt @@ -2,6 +2,7 @@ add_qtc_plugin(Debugger DEPENDS LanguageUtils QmlDebug QmlJS QtcSsh registryaccess PLUGIN_DEPENDS Core CppTools ProjectExplorer QtSupport TextEditor PLUGIN_RECOMMENDS QmakeProjectManager + PLUGIN_TEST_DEPENDS QmakeProjectManager SOURCES analyzer/analyzerbase.qrc analyzer/analyzerconstants.h diff --git a/src/plugins/designer/CMakeLists.txt b/src/plugins/designer/CMakeLists.txt index cb7016d0eee..44c8875619b 100644 --- a/src/plugins/designer/CMakeLists.txt +++ b/src/plugins/designer/CMakeLists.txt @@ -1,13 +1,10 @@ -if (WITH_TESTS) - set(TST_COMPONENT CppEditor) -endif() - add_qtc_plugin(Designer CONDITION TARGET Qt5::DesignerComponents AND TARGET Qt5::Designer DEPENDS designerintegrationv2 Qt5::Designer Qt5::PrintSupport Qt5::DesignerComponents DEFINES CPP_ENABLED - PLUGIN_DEPENDS Core CppTools ProjectExplorer QtSupport ResourceEditor TextEditor ${TST_COMPONENT} + PLUGIN_DEPENDS Core CppTools ProjectExplorer QtSupport ResourceEditor TextEditor + PLUGIN_TEST_DEPENDS CppEditor SOURCES codemodelhelpers.cpp codemodelhelpers.h cpp/formclasswizard.cpp cpp/formclasswizard.h diff --git a/src/plugins/fakevim/CMakeLists.txt b/src/plugins/fakevim/CMakeLists.txt index 0dd4f690f28..ddb6f3c1f1e 100644 --- a/src/plugins/fakevim/CMakeLists.txt +++ b/src/plugins/fakevim/CMakeLists.txt @@ -1,9 +1,6 @@ -if (WITH_TESTS) - set(TST_COMPONENT CppEditor CppTools) -endif() - add_qtc_plugin(FakeVim - PLUGIN_DEPENDS Core TextEditor ${TST_COMPONENT} + PLUGIN_DEPENDS Core TextEditor + PLUGIN_TEST_DEPENDS CppEditor CppTools SOURCES ${TEST_SOURCES} fakevim.qrc fakevimactions.cpp fakevimactions.h diff --git a/src/plugins/genericprojectmanager/CMakeLists.txt b/src/plugins/genericprojectmanager/CMakeLists.txt index 13ed2d53737..ec12a0af555 100644 --- a/src/plugins/genericprojectmanager/CMakeLists.txt +++ b/src/plugins/genericprojectmanager/CMakeLists.txt @@ -1,9 +1,6 @@ -if (WITH_TESTS) - set(TST_COMPONENT CppEditor) -endif() - add_qtc_plugin(GenericProjectManager - PLUGIN_DEPENDS Core ProjectExplorer QtSupport TextEditor ${TST_COMPONENT} + PLUGIN_DEPENDS Core ProjectExplorer QtSupport TextEditor + PLUGIN_TEST_DEPENDS CppEditor PLUGIN_RECOMMENDS CppTools SOURCES ${TEST_SOURCES} filesselectionwizardpage.cpp filesselectionwizardpage.h