aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/corelib/language/projectresolver.cpp
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-05-22 12:01:14 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-05-23 13:59:09 +0200
commit0da3f04e71f6f77f47b10fef6736b1415b1960d2 (patch)
tree85d152e7f16838ca32ad1cbc8e8b07029a62e855 /src/lib/corelib/language/projectresolver.cpp
parente00b6c86cece5752c53f78bb439a1a21db5b7674 (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.cpp18
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) {