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 cmake_parse_arguments(_arg
"SKIP_DEBUG_CMAKE_FILE_CHECK;SKIP_INSTALL;INTERNAL_ONLY;SKIP_TRANSLATION;EXPORT" "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" "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} ${ARGN}
) )
@@ -363,6 +363,15 @@ function(add_qtc_plugin target_name)
" { \"Name\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"optional\" }" " { \"Name\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"optional\" }"
) )
endforeach(i) 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 {" string(REPLACE "} {" "},\n {"
_arg_DEPENDENCY_STRING "${_arg_DEPENDENCY_STRING}" _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 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 SOURCES
autotest.qrc autotest.qrc
autotest_global.h autotest_global.h

View File

@@ -1,11 +1,8 @@
if (WITH_TESTS)
set(TST_COMPONENT CppEditor QmakeProjectManager)
endif()
add_qtc_plugin(ClangCodeModel add_qtc_plugin(ClangCodeModel
CONDITION TARGET libclang CONDITION TARGET libclang
DEPENDS ClangSupport CPlusPlus DEPENDS ClangSupport CPlusPlus
PLUGIN_DEPENDS Core CppTools TextEditor ${TST_COMPONENT} PLUGIN_DEPENDS Core CppTools TextEditor
PLUGIN_TEST_DEPENDS CppEditor QmakeProjectManager
SOURCES SOURCES
clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h clangactivationsequencecontextprocessor.cpp clangactivationsequencecontextprocessor.h
clangactivationsequenceprocessor.cpp clangactivationsequenceprocessor.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) find_package(yaml-cpp QUIET MODULE)
add_qtc_plugin(ClangTools add_qtc_plugin(ClangTools
CONDITION TARGET yaml-cpp CONDITION TARGET yaml-cpp
DEPENDS ClangSupport yaml-cpp DEPENDS ClangSupport yaml-cpp
PLUGIN_DEPENDS Core Debugger CppTools CppEditor ${TST_COMPONENT} PLUGIN_DEPENDS Core Debugger CppTools CppEditor
PLUGIN_RECOMMENDS CppEditor PLUGIN_RECOMMENDS CppEditor
PLUGIN_TEST_DEPENDS QmakeProjectManager QbsProjectManager
INCLUDES ${CLANG_INCLUDE_DIRS} INCLUDES ${CLANG_INCLUDE_DIRS}
SOURCES SOURCES
clangfileinfo.h clangfileinfo.h

View File

@@ -1,6 +1,7 @@
add_qtc_plugin(CppEditor add_qtc_plugin(CppEditor
DEFINES CPPEDITOR_LIBRARY DEFINES CPPEDITOR_LIBRARY
PLUGIN_DEPENDS Core CppTools ProjectExplorer TextEditor PLUGIN_DEPENDS Core CppTools ProjectExplorer TextEditor
PLUGIN_TEST_DEPENDS QmakeProjectManager
SOURCES SOURCES
cppautocompleter.cpp cppautocompleter.h cppautocompleter.cpp cppautocompleter.h
cppcodemodelinspectordialog.cpp cppcodemodelinspectordialog.h cppcodemodelinspectordialog.ui cppcodemodelinspectordialog.cpp cppcodemodelinspectordialog.h cppcodemodelinspectordialog.ui

View File

@@ -2,6 +2,7 @@ add_qtc_plugin(Debugger
DEPENDS LanguageUtils QmlDebug QmlJS QtcSsh registryaccess DEPENDS LanguageUtils QmlDebug QmlJS QtcSsh registryaccess
PLUGIN_DEPENDS Core CppTools ProjectExplorer QtSupport TextEditor PLUGIN_DEPENDS Core CppTools ProjectExplorer QtSupport TextEditor
PLUGIN_RECOMMENDS QmakeProjectManager PLUGIN_RECOMMENDS QmakeProjectManager
PLUGIN_TEST_DEPENDS QmakeProjectManager
SOURCES SOURCES
analyzer/analyzerbase.qrc analyzer/analyzerbase.qrc
analyzer/analyzerconstants.h analyzer/analyzerconstants.h

View File

@@ -1,13 +1,10 @@
if (WITH_TESTS)
set(TST_COMPONENT CppEditor)
endif()
add_qtc_plugin(Designer add_qtc_plugin(Designer
CONDITION TARGET Qt5::DesignerComponents AND TARGET Qt5::Designer CONDITION TARGET Qt5::DesignerComponents AND TARGET Qt5::Designer
DEPENDS designerintegrationv2 DEPENDS designerintegrationv2
Qt5::Designer Qt5::PrintSupport Qt5::DesignerComponents Qt5::Designer Qt5::PrintSupport Qt5::DesignerComponents
DEFINES CPP_ENABLED 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 SOURCES
codemodelhelpers.cpp codemodelhelpers.h codemodelhelpers.cpp codemodelhelpers.h
cpp/formclasswizard.cpp cpp/formclasswizard.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 add_qtc_plugin(FakeVim
PLUGIN_DEPENDS Core TextEditor ${TST_COMPONENT} PLUGIN_DEPENDS Core TextEditor
PLUGIN_TEST_DEPENDS CppEditor CppTools
SOURCES ${TEST_SOURCES} SOURCES ${TEST_SOURCES}
fakevim.qrc fakevim.qrc
fakevimactions.cpp fakevimactions.h fakevimactions.cpp fakevimactions.h

View File

@@ -1,9 +1,6 @@
if (WITH_TESTS)
set(TST_COMPONENT CppEditor)
endif()
add_qtc_plugin(GenericProjectManager 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 PLUGIN_RECOMMENDS CppTools
SOURCES ${TEST_SOURCES} SOURCES ${TEST_SOURCES}
filesselectionwizardpage.cpp filesselectionwizardpage.h filesselectionwizardpage.cpp filesselectionwizardpage.h