From a596421ffcda6960243f7e0012c21e778a4b20f0 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Thu, 19 Mar 2020 18:24:23 +0100 Subject: [PATCH] BuildSystem: Clean up use of BuildSystem::(kit|target|project) Change-Id: I4852689cb54d02bb278f9cd596f1de506a43fc04 Reviewed-by: hjk --- .../cmakeprojectmanager/cmakebuildsystem.cpp | 93 ++++++++++--------- .../compilationdatabaseproject.cpp | 6 +- .../qmakenodetreebuilder.cpp | 3 +- .../qmakeprojectmanager/qmakeproject.cpp | 40 ++++---- 4 files changed, 71 insertions(+), 71 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index e6be6c76f58..24b5ece217d 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -107,11 +107,11 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc) // BuildDirManager: connect(&m_buildDirManager, &BuildDirManager::requestReparse, this, [this] { - if (m_buildConfiguration->isActive()) + if (cmakeBuildConfiguration()->isActive()) requestParse(); }); connect(&m_buildDirManager, &BuildDirManager::requestDelayedReparse, this, [this] { - if (m_buildConfiguration->isActive()) + if (cmakeBuildConfiguration()->isActive()) requestDelayedParse(); }); @@ -122,17 +122,17 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc) this, &CMakeBuildSystem::handleParsingFailed); connect(&m_buildDirManager, &BuildDirManager::parsingStarted, this, [this]() { - m_buildConfiguration->clearError(CMakeBuildConfiguration::ForceEnabledChanged::True); + cmakeBuildConfiguration()->clearError(CMakeBuildConfiguration::ForceEnabledChanged::True); }); // Kit changed: connect(KitManager::instance(), &KitManager::kitUpdated, this, [this](Kit *k) { - if (k != target()->kit()) + if (k != kit()) return; // not for us... // Build configuration has not changed, but Kit settings might have: // reparse and check the configuration, independent of whether the reader has changed qCDebug(cmakeBuildSystemLog) << "Requesting parse due to kit being updated"; - m_buildDirManager.setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), + m_buildDirManager.setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), BuildDirManager::REPARSE_CHECK_CONFIGURATION); }); @@ -144,22 +144,22 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc) // * run cmake without configuration arguments if the reader stays qCDebug(cmakeBuildSystemLog) << "Requesting parse due to active target changed"; m_buildDirManager - .setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), + .setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), BuildDirManager::REPARSE_CHECK_CONFIGURATION); } else { m_buildDirManager.stopParsingAndClearState(); } }); connect(target(), &Target::activeBuildConfigurationChanged, this, [this](BuildConfiguration *bc) { - if (m_buildConfiguration->isActive()) { - if (m_buildConfiguration == bc) { + if (cmakeBuildConfiguration()->isActive()) { + if (cmakeBuildConfiguration() == bc) { // Build configuration has switched: // * Check configuration if reader changes due to it not existing yet:-) // * run cmake without configuration arguments if the reader stays qCDebug(cmakeBuildSystemLog) << "Requesting parse due to active BC changed"; m_buildDirManager - .setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), - BuildDirManager::REPARSE_CHECK_CONFIGURATION); + .setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), + BuildDirManager::REPARSE_CHECK_CONFIGURATION); } else { m_buildDirManager.stopParsingAndClearState(); } @@ -167,19 +167,19 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc) }); // BuildConfiguration changed: - connect(m_buildConfiguration, &CMakeBuildConfiguration::environmentChanged, this, [this]() { - if (m_buildConfiguration->isActive()) { + connect(cmakeBuildConfiguration(), &CMakeBuildConfiguration::environmentChanged, this, [this]() { + if (cmakeBuildConfiguration()->isActive()) { // The environment on our BC has changed: // * Error out if the reader updates, cannot happen since all BCs share a target/kit. // * run cmake without configuration arguments if the reader stays qCDebug(cmakeBuildSystemLog) << "Requesting parse due to environment change"; m_buildDirManager - .setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), + .setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), BuildDirManager::REPARSE_CHECK_CONFIGURATION); } }); - connect(m_buildConfiguration, &CMakeBuildConfiguration::buildDirectoryChanged, this, [this]() { - if (m_buildConfiguration->isActive()) { + connect(cmakeBuildConfiguration(), &CMakeBuildConfiguration::buildDirectoryChanged, this, [this]() { + if (cmakeBuildConfiguration()->isActive()) { // The build directory of our BC has changed: // * Error out if the reader updates, cannot happen since all BCs share a target/kit. // * run cmake without configuration arguments if the reader stays @@ -187,36 +187,36 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc) // the reader. qCDebug(cmakeBuildSystemLog) << "Requesting parse due to build directory change"; m_buildDirManager - .setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), + .setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), BuildDirManager::REPARSE_CHECK_CONFIGURATION); } }); - connect(m_buildConfiguration, &CMakeBuildConfiguration::configurationForCMakeChanged, this, [this]() { - if (m_buildConfiguration->isActive()) { + connect(cmakeBuildConfiguration(), &CMakeBuildConfiguration::configurationForCMakeChanged, this, [this]() { + if (cmakeBuildConfiguration()->isActive()) { // The CMake configuration has changed on our BC: // * Error out if the reader updates, cannot happen since all BCs share a target/kit. // * run cmake with configuration arguments if the reader stays qCDebug(cmakeBuildSystemLog) << "Requesting parse due to cmake configuration change"; m_buildDirManager - .setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), + .setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), BuildDirManager::REPARSE_FORCE_CONFIGURATION); } }); connect(project(), &Project::projectFileIsDirty, this, [this]() { - if (m_buildConfiguration->isActive() && !isParsing()) { - const auto cmake = CMakeKitAspect::cmakeTool(m_buildConfiguration->target()->kit()); + if (cmakeBuildConfiguration()->isActive() && !isParsing()) { + const auto cmake = CMakeKitAspect::cmakeTool(cmakeBuildConfiguration()->target()->kit()); if (cmake && cmake->isAutoRun()) { qCDebug(cmakeBuildSystemLog) << "Requesting parse due to dirty project file"; m_buildDirManager.setParametersAndRequestParse(BuildDirParameters( - m_buildConfiguration), + cmakeBuildConfiguration()), BuildDirManager::REPARSE_DEFAULT); } } }); qCDebug(cmakeBuildSystemLog) << "Requesting parse due to initial CMake BuildSystem setup"; - m_buildDirManager.setParametersAndRequestParse(BuildDirParameters(m_buildConfiguration), + m_buildDirManager.setParametersAndRequestParse(BuildDirParameters(cmakeBuildConfiguration()), BuildDirManager::REPARSE_CHECK_CONFIGURATION); } @@ -284,7 +284,7 @@ QStringList CMakeBuildSystem::filesGeneratedFrom(const QString &sourceFile) cons QDir srcDirRoot = QDir(project.toString()); QString relativePath = srcDirRoot.relativeFilePath(baseDirectory.toString()); - QDir buildDir = QDir(buildConfiguration()->buildDirectory().toString()); + QDir buildDir = QDir(cmakeBuildConfiguration()->buildDirectory().toString()); QString generatedFilePath = buildDir.absoluteFilePath(relativePath); if (fi.suffix() == "ui") { @@ -305,7 +305,7 @@ QStringList CMakeBuildSystem::filesGeneratedFrom(const QString &sourceFile) cons void CMakeBuildSystem::runCMake() { - BuildDirParameters parameters(m_buildConfiguration); + BuildDirParameters parameters(cmakeBuildConfiguration()); qCDebug(cmakeBuildSystemLog) << "Requesting parse due \"Run CMake\" command"; m_buildDirManager.setParametersAndRequestParse(parameters, BuildDirManager::REPARSE_CHECK_CONFIGURATION @@ -315,7 +315,7 @@ void CMakeBuildSystem::runCMake() void CMakeBuildSystem::runCMakeAndScanProjectTree() { - BuildDirParameters parameters(m_buildConfiguration); + BuildDirParameters parameters(cmakeBuildConfiguration()); qCDebug(cmakeBuildSystemLog) << "Requesting parse due to \"Rescan Project\" command"; m_buildDirManager.setParametersAndRequestParse(parameters, BuildDirManager::REPARSE_CHECK_CONFIGURATION @@ -325,7 +325,7 @@ void CMakeBuildSystem::runCMakeAndScanProjectTree() void CMakeBuildSystem::buildCMakeTarget(const QString &buildTarget) { QTC_ASSERT(!buildTarget.isEmpty(), return); - m_buildConfiguration->buildTarget(buildTarget); + cmakeBuildConfiguration()->buildTarget(buildTarget); } void CMakeBuildSystem::handleTreeScanningFinished() @@ -380,7 +380,7 @@ std::unique_ptr void CMakeBuildSystem::combineScanAndParse() { - if (m_buildConfiguration->isActive()) { + if (cmakeBuildConfiguration()->isActive()) { if (m_waitingForParse || m_waitingForScan) return; @@ -398,7 +398,7 @@ void CMakeBuildSystem::combineScanAndParse() void CMakeBuildSystem::checkAndReportError(QString &errorMessage) { if (!errorMessage.isEmpty()) { - m_buildConfiguration->setError(errorMessage); + cmakeBuildConfiguration()->setError(errorMessage); errorMessage.clear(); } } @@ -409,13 +409,15 @@ void CMakeBuildSystem::updateProjectData() QTC_ASSERT(m_treeScanner.isFinished() && !m_buildDirManager.isParsing(), return); - m_buildConfiguration->project()->setExtraProjectFiles(m_buildDirManager.projectFilesToWatch()); + cmakeBuildConfiguration()->project()->setExtraProjectFiles( + m_buildDirManager.projectFilesToWatch()); - CMakeConfig patchedConfig = m_buildConfiguration->configurationFromCMake(); + CMakeConfig patchedConfig = cmakeBuildConfiguration()->configurationFromCMake(); { CMakeConfigItem settingFileItem; settingFileItem.key = "ANDROID_DEPLOYMENT_SETTINGS_FILE"; - settingFileItem.value = m_buildConfiguration->buildDirectory() + settingFileItem.value = cmakeBuildConfiguration() + ->buildDirectory() .pathAppended("android_deployment_settings.json") .toString() .toUtf8(); @@ -479,7 +481,7 @@ void CMakeBuildSystem::updateProjectData() QString errorMessage; RawProjectParts rpps = m_buildDirManager.createRawProjectParts(errorMessage); if (!errorMessage.isEmpty()) - m_buildConfiguration->setError(errorMessage); + cmakeBuildConfiguration()->setError(errorMessage); qCDebug(cmakeBuildSystemLog) << "Raw project parts created." << errorMessage; for (RawProjectPart &rpp : rpps) { @@ -491,13 +493,13 @@ void CMakeBuildSystem::updateProjectData() rpp.setFlagsForC({kitInfo.cToolChain, rpp.flagsForC.commandLineFlags}); } - m_cppCodeModelUpdater->update({p, kitInfo, m_buildConfiguration->environment(), rpps}); + m_cppCodeModelUpdater->update({p, kitInfo, cmakeBuildConfiguration()->environment(), rpps}); } { updateQmlJSCodeModel(); } - emit m_buildConfiguration->buildTypeChanged(); + emit cmakeBuildConfiguration()->buildTypeChanged(); m_buildDirManager.resetData(); @@ -506,12 +508,12 @@ void CMakeBuildSystem::updateProjectData() void CMakeBuildSystem::handleParsingSucceeded() { - if (!m_buildConfiguration->isActive()) { + if (!cmakeBuildConfiguration()->isActive()) { m_buildDirManager.stopParsingAndClearState(); return; } - m_buildConfiguration->clearError(); + cmakeBuildConfiguration()->clearError(); QString errorMessage; { @@ -522,7 +524,7 @@ void CMakeBuildSystem::handleParsingSucceeded() { const CMakeConfig cmakeConfig = m_buildDirManager.takeCMakeConfiguration(errorMessage); checkAndReportError(errorMessage); - m_buildConfiguration->setConfigurationFromCMake(cmakeConfig); + cmakeBuildConfiguration()->setConfigurationFromCMake(cmakeConfig); } setApplicationTargets(appTargets()); @@ -533,10 +535,11 @@ void CMakeBuildSystem::handleParsingSucceeded() void CMakeBuildSystem::handleParsingFailed(const QString &msg) { - m_buildConfiguration->setError(msg); + cmakeBuildConfiguration()->setError(msg); QString errorMessage; - m_buildConfiguration->setConfigurationFromCMake(m_buildDirManager.takeCMakeConfiguration(errorMessage)); + cmakeBuildConfiguration()->setConfigurationFromCMake( + m_buildDirManager.takeCMakeConfiguration(errorMessage)); // ignore errorMessage here, we already got one. handleParsingError(); @@ -563,8 +566,8 @@ static Utils::FilePaths librarySearchPaths(const CMakeBuildSystem *bs, const QSt const QList CMakeBuildSystem::appTargets() const { QList appTargetList; - const bool forAndroid = DeviceTypeKitAspect::deviceTypeId(target()->kit()) - == Android::Constants::ANDROID_DEVICE_TYPE; + const bool forAndroid = DeviceTypeKitAspect::deviceTypeId(kit()) + == Android::Constants::ANDROID_DEVICE_TYPE; for (const CMakeBuildTarget &ct : m_buildTargets) { if (ct.targetType == UtilityType) continue; @@ -609,8 +612,8 @@ DeploymentData CMakeBuildSystem::deploymentData() const { DeploymentData result; - QDir sourceDir = target()->project()->projectDirectory().toString(); - QDir buildDir = buildConfiguration()->buildDirectory().toString(); + QDir sourceDir = project()->projectDirectory().toString(); + QDir buildDir = cmakeBuildConfiguration()->buildDirectory().toString(); QString deploymentPrefix; QString deploymentFilePath = sourceDir.filePath("QtCreatorDeployment.txt"); @@ -709,7 +712,7 @@ void CMakeBuildSystem::updateQmlJSCodeModel() projectInfo.importPaths.clear(); - const CMakeConfig &cm = m_buildConfiguration->configurationFromCMake(); + const CMakeConfig &cm = cmakeBuildConfiguration()->configurationFromCMake(); const QString cmakeImports = QString::fromUtf8(CMakeConfigItem::valueOf("QML_IMPORT_PATH", cm)); foreach (const QString &cmakeImport, CMakeConfigItem::cmakeSplitValue(cmakeImports)) diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp index dcffa6ae3e8..a7f1d88b52c 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp @@ -369,8 +369,8 @@ void CompilationDatabaseBuildSystem::triggerParsing() void CompilationDatabaseBuildSystem::buildTreeAndProjectParts() { - Kit *kit = target()->kit(); - ProjectExplorer::KitInfo kitInfo(kit); + Kit *k = kit(); + ProjectExplorer::KitInfo kitInfo(k); QTC_ASSERT(kitInfo.isValid(), return); // Reset toolchains to pick them based on the database entries. kitInfo.cToolChain = nullptr; @@ -389,7 +389,7 @@ void CompilationDatabaseBuildSystem::buildTreeAndProjectParts() prevEntry = &entry; RawProjectPart rpp = makeRawProjectPart(projectFilePath(), - kit, + k, kitInfo, entry.workingDir, entry.fileName, diff --git a/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp b/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp index b4dfa4325df..03d9570f2bf 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodetreebuilder.cpp @@ -239,8 +239,7 @@ static void createTree(QmakeBuildSystem *buildSystem, std::unique_ptr QmakeNodeTreeBuilder::buildTree(QmakeBuildSystem *buildSystem) { // Remove qmake implementation details that litter up the project data: - Target *t = buildSystem->target(); - BaseQtVersion *qt = QtKitAspect::qtVersion(t->kit()); + BaseQtVersion *qt = QtKitAspect::qtVersion(buildSystem->kit()); const FilePaths toExclude = qt ? qt->directoriesToIgnoreInProjectTree() : FilePaths(); diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp index 15040d8f942..c3de314e718 100644 --- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp +++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp @@ -577,12 +577,13 @@ void QmakeBuildSystem::asyncUpdate() m_asyncUpdateFutureInterface.reportStarted(); - const Kit * const kit = target()->kit(); - QtSupport::BaseQtVersion * const qtVersion = QtSupport::QtKitAspect::qtVersion(kit); + const Kit *const k = kit(); + QtSupport::BaseQtVersion *const qtVersion = QtSupport::QtKitAspect::qtVersion(k); if (!qtVersion || !qtVersion->isValid()) { - const QString errorMessage = kit - ? tr("Cannot parse project \"%1\": The currently selected kit \"%2\" does not " - "have a valid Qt.").arg(project()->displayName(), kit->displayName()) + const QString errorMessage + = k ? tr("Cannot parse project \"%1\": The currently selected kit \"%2\" does not " + "have a valid Qt.") + .arg(project()->displayName(), k->displayName()) : tr("Cannot parse project \"%1\": No kit selected.").arg(project()->displayName()); proFileParseError(errorMessage); m_asyncUpdateFutureInterface.reportCanceled(); @@ -668,13 +669,14 @@ QtSupport::ProFileReader *QmakeBuildSystem::createProFileReader(const QmakeProFi QStringList qmakeArgs; - Target *t = target(); - Kit *k = t->kit(); - Environment env = m_buildConfiguration->environment(); - if (QMakeStep *qs = m_buildConfiguration->qmakeStep()) + Kit *k = kit(); + QmakeBuildConfiguration *bc = m_buildConfiguration; + + Environment env = bc->environment(); + if (QMakeStep *qs = bc->qmakeStep()) qmakeArgs = qs->parserArguments(); else - qmakeArgs = m_buildConfiguration->configCommandLineArguments(); + qmakeArgs = bc->configCommandLineArguments(); QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(k); m_qmakeSysroot = SysRootKitAspect::sysRoot(k).toString(); @@ -757,7 +759,7 @@ void QmakeBuildSystem::deregisterFromCacheManager() void QmakeBuildSystem::activeTargetWasChanged(Target *t) { // We are only interested in our own target. - if (t != m_buildConfiguration->target()) + if (t != target()) return; m_invalidateQmakeVfsContents = true; @@ -1052,7 +1054,7 @@ void QmakeBuildSystem::updateBuildSystemData() libraryPaths.append(dir); } } - QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(target()->kit()); + QtSupport::BaseQtVersion *qtVersion = QtSupport::QtKitAspect::qtVersion(kit()); if (qtVersion) libraryPaths.append(qtVersion->librarySearchPath().toString()); @@ -1126,8 +1128,7 @@ void QmakeBuildSystem::collectLibraryData(const QmakeProFile *file, DeploymentDa const QString targetPath = file->installsList().targetPath; if (targetPath.isEmpty()) return; - const Kit * const kit = target()->kit(); - const ToolChain * const toolchain = ToolChainKitAspect::cxxToolChain(kit); + const ToolChain *const toolchain = ToolChainKitAspect::cxxToolChain(kit()); if (!toolchain) return; @@ -1270,21 +1271,18 @@ void QmakeBuildSystem::testToolChain(ToolChain *tc, const FilePath &path) const void QmakeBuildSystem::warnOnToolChainMismatch(const QmakeProFile *pro) const { - const Target *t = target(); - const BuildConfiguration *bc = t ? t->activeBuildConfiguration() : nullptr; + const BuildConfiguration *bc = m_buildConfiguration; if (!bc) return; - testToolChain(ToolChainKitAspect::cToolChain(t->kit()), - getFullPathOf(pro, Variable::QmakeCc, bc)); - testToolChain(ToolChainKitAspect::cxxToolChain(t->kit()), + testToolChain(ToolChainKitAspect::cToolChain(kit()), getFullPathOf(pro, Variable::QmakeCc, bc)); + testToolChain(ToolChainKitAspect::cxxToolChain(kit()), getFullPathOf(pro, Variable::QmakeCxx, bc)); } QString QmakeBuildSystem::executableFor(const QmakeProFile *file) { - const Kit *const kit = target()->kit(); - const ToolChain *const tc = ToolChainKitAspect::cxxToolChain(kit); + const ToolChain *const tc = ToolChainKitAspect::cxxToolChain(kit()); if (!tc) return QString();