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 <christian.stenger@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
Eike Ziller
2020-12-11 12:23:49 +01:00
parent ea4a53a1aa
commit 305ca7e434
9 changed files with 24 additions and 31 deletions

View File

@@ -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}"

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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