diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-05-22 12:01:14 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-05-23 13:59:09 +0200 |
commit | 0da3f04e71f6f77f47b10fef6736b1415b1960d2 (patch) | |
tree | 85d152e7f16838ca32ad1cbc8e8b07029a62e855 /src/lib/corelib/language/projectresolver.cpp | |
parent | e00b6c86cece5752c53f78bb439a1a21db5b7674 (diff) |
Sanitize the project setup API.
Ever since we introduced "overridden values", the setter for
the build configuration has been pretty much an empty shell, containing
only the build variant and the profile. We now make that explicit,
resulting in a less confusing API that does not expect the caller to
know how to encode profile and build variant information in a QVariantMap.
Change-Id: I60183fc1884a884c9ceba34d7eb460c261be47ca
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/corelib/language/projectresolver.cpp')
-rw-r--r-- | src/lib/corelib/language/projectresolver.cpp | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/lib/corelib/language/projectresolver.cpp b/src/lib/corelib/language/projectresolver.cpp index 4fe03b7cb..e54074f14 100644 --- a/src/lib/corelib/language/projectresolver.cpp +++ b/src/lib/corelib/language/projectresolver.cpp @@ -124,7 +124,8 @@ void ProjectResolver::checkCancelation() const { if (m_progressObserver && m_progressObserver->canceled()) { throw ErrorInfo(Tr::tr("Project resolving canceled for configuration %1.") - .arg(TopLevelProject::deriveId(m_setupParams.finalBuildConfigurationTree()))); + .arg(TopLevelProject::deriveId(m_setupParams.topLevelProfile(), + m_setupParams.finalBuildConfigurationTree()))); } } @@ -180,11 +181,12 @@ void ProjectResolver::resolveTopLevelProject(Item *item, ProjectContext *project if (m_progressObserver) m_progressObserver->setMaximum(projectContext->loadResult->productInfos.count()); const TopLevelProjectPtr project = TopLevelProject::create(); - project->setBuildConfiguration(m_setupParams.finalBuildConfigurationTree()); - project->buildDirectory - = TopLevelProject::deriveBuildDirectory(m_setupParams.buildRoot(), project->id()); + project->buildDirectory = TopLevelProject::deriveBuildDirectory(m_setupParams.buildRoot(), + TopLevelProject::deriveId(m_setupParams.topLevelProfile(), + m_setupParams.finalBuildConfigurationTree())); projectContext->project = project; resolveProject(item, projectContext); + project->setBuildConfiguration(m_setupParams.finalBuildConfigurationTree()); project->usedEnvironment = m_engine->usedEnvironment(); project->fileExistsResults = m_engine->fileExistsResults(); project->fileLastModifiedResults = m_engine->fileLastModifiedResults(); @@ -204,12 +206,16 @@ void ProjectResolver::resolveProject(Item *item, ProjectContext *projectContext) projectContext->project->name = FileInfo::baseName(item->location().fileName()); // FIXME: Must also be changed in item? projectContext->project->enabled = m_evaluator->boolValue(item, QLatin1String("condition")); - if (!projectContext->project->enabled) + QVariantMap projectProperties; + if (!projectContext->project->enabled) { + projectProperties.insert(QLatin1String("profile"), + m_evaluator->stringValue(item, QLatin1String("profile"))); + projectContext->project->setProjectProperties(projectProperties); return; + } projectContext->dummyModule = ResolvedModule::create(); - QVariantMap projectProperties; for (Item::PropertyDeclarationMap::const_iterator it = item->propertyDeclarations().constBegin(); it != item->propertyDeclarations().constEnd(); ++it) { |