diff options
| author | Christian Kandeler <christian.kandeler@digia.com> | 2013-07-15 11:23:49 +0200 |
|---|---|---|
| committer | Christian Kandeler <christian.kandeler@digia.com> | 2013-07-16 10:19:31 +0200 |
| commit | e31e0e948e8812ad572ed953906912c03ecf914a (patch) | |
| tree | fa509caa5702d5d26201da82b6214ced819466fb | |
| parent | 3315b5a35f86f70d9d3ef32fcc07d90406f5b30a (diff) | |
| download | qbs-e31e0e948e8812ad572ed953906912c03ecf914a.tar.gz | |
Set engine environment before starting the module loader.
This was wrong all along, resulting in potentially different results
of calls to qbs.getenv() during evaluation.
Change-Id: I1e4ef50802f1248dfcbd0ac1c036a8fcfaf5e1b6
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
| -rw-r--r-- | src/lib/language/loader.cpp | 4 | ||||
| -rw-r--r-- | src/lib/language/projectresolver.cpp | 8 | ||||
| -rw-r--r-- | src/lib/language/projectresolver.h | 4 |
3 files changed, 6 insertions, 10 deletions
diff --git a/src/lib/language/loader.cpp b/src/lib/language/loader.cpp index a4689b925..520db3584 100644 --- a/src/lib/language/loader.cpp +++ b/src/lib/language/loader.cpp @@ -87,6 +87,7 @@ TopLevelProjectPtr Loader::loadProject(const SetupProjectParameters ¶meters) { QBS_CHECK(QFileInfo(parameters.projectFilePath()).isAbsolute()); + m_engine->setEnvironment(parameters.environment()); m_engine->clearExceptions(); // At this point, we cannot set a sensible total effort, because we know nothing about @@ -97,12 +98,13 @@ TopLevelProjectPtr Loader::loadProject(const SetupProjectParameters ¶meters) m_progressObserver->initialize(Tr::tr("Resolving project for configuration %1") .arg(TopLevelProject::deriveId(parameters.buildConfigurationTree())), 1); } + ModuleLoaderResult loadResult = m_moduleLoader->load(parameters.projectFilePath(), parameters.buildConfigurationTree(), true); const TopLevelProjectPtr project = m_projectResolver->resolve(loadResult, - parameters.buildRoot(), parameters.buildConfigurationTree(), parameters.environment()); + parameters.buildRoot(), parameters.buildConfigurationTree()); // E.g. if the top-level project is disabled. if (m_progressObserver) diff --git a/src/lib/language/projectresolver.cpp b/src/lib/language/projectresolver.cpp index 8cd61b3d1..231dab1c2 100644 --- a/src/lib/language/projectresolver.cpp +++ b/src/lib/language/projectresolver.cpp @@ -80,8 +80,7 @@ void ProjectResolver::setProgressObserver(ProgressObserver *observer) TopLevelProjectPtr ProjectResolver::resolve(ModuleLoaderResult &loadResult, const QString &buildRoot, - const QVariantMap &buildConfiguration, - const QProcessEnvironment &environment) + const QVariantMap &buildConfiguration) { QBS_ASSERT(FileInfo::isAbsolute(buildRoot), return TopLevelProjectPtr()); if (m_logger.traceEnabled()) @@ -91,7 +90,6 @@ TopLevelProjectPtr ProjectResolver::resolve(ModuleLoaderResult &loadResult, projectContext.loadResult = &loadResult; m_buildRoot = buildRoot; m_buildConfiguration = buildConfiguration; - m_environment = environment; m_productContext = 0; m_moduleContext = 0; resolveTopLevelProject(loadResult.root, &projectContext); @@ -164,7 +162,7 @@ void ProjectResolver::resolveTopLevelProject(Item *item, ProjectContext *project resolveProject(item, projectContext); project->usedEnvironment = m_engine->usedEnvironment(); project->fileExistsResults = m_engine->fileExistsResults(); - project->environment = m_environment; + project->environment = m_engine->environment(); project->buildSystemFiles = m_engine->imports(); makeSubProjectNamesUniqe(project); resolveProductDependencies(projectContext); @@ -186,8 +184,6 @@ void ProjectResolver::resolveProject(Item *item, ProjectContext *projectContext) projectContext->dummyModule = ResolvedModule::create(); projectContext->dummyModule->jsImports = item->file()->jsImports(); - m_evaluator->engine()->setEnvironment(m_environment); - QVariantMap projectProperties; for (QMap<QString, PropertyDeclaration>::const_iterator it = item->propertyDeclarations().constBegin(); diff --git a/src/lib/language/projectresolver.h b/src/lib/language/projectresolver.h index 0ec172230..b97633e50 100644 --- a/src/lib/language/projectresolver.h +++ b/src/lib/language/projectresolver.h @@ -57,8 +57,7 @@ public: void setProgressObserver(ProgressObserver *observer); TopLevelProjectPtr resolve(ModuleLoaderResult &loadResult, const QString &buildRoot, - const QVariantMap &buildConfiguration, - const QProcessEnvironment &environment); + const QVariantMap &buildConfiguration); private: struct ProjectContext @@ -122,7 +121,6 @@ private: QVariantMap m_buildConfiguration; ProductContext *m_productContext; ModuleContext *m_moduleContext; - QProcessEnvironment m_environment; QMap<QString, ResolvedProductPtr> m_productsByName; QHash<ResolvedProductPtr, Item *> m_productItemMap; QMap<QString, QVariantMap> m_exports; |
