diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index e802968c9ab..154c10851c9 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -1776,7 +1776,7 @@ void QmakeProFileNode::setupReader() bool QmakeProFileNode::evaluateOne( const EvalInput &input, ProFile *pro, QtSupport::ProFileReader *reader, - QtSupport::ProFileReader **buildPassReader) + bool cumulative, QtSupport::ProFileReader **buildPassReader) { if (!reader->accept(pro, QMakeEvaluator::LoadAll)) return false; @@ -1797,6 +1797,7 @@ bool QmakeProFileNode::evaluateOne( // We don't increase/decrease m_qmakeGlobalsRefCnt here, because the outer profilereaders keep m_qmakeGlobals alive anyway auto bpReader = new QtSupport::ProFileReader(input.qmakeGlobals, input.qmakeVfs); // needs to access m_qmakeGlobals, m_qmakeVfs bpReader->setOutputDir(input.buildDirectory); + bpReader->setCumulative(cumulative); bpReader->setExtraVars(basevars); bpReader->setExtraConfigs(basecfgs); @@ -1816,8 +1817,8 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input) QtSupport::ProFileReader *cumulativeBuildPassReader = nullptr; ProFile *pro; if ((pro = input.readerExact->parsedProFile(input.projectFilePath.toString()))) { - bool exactOk = evaluateOne(input, pro, input.readerExact, &exactBuildPassReader); - bool cumulOk = evaluateOne(input, pro, input.readerCumulative, &cumulativeBuildPassReader); + bool exactOk = evaluateOne(input, pro, input.readerExact, false, &exactBuildPassReader); + bool cumulOk = evaluateOne(input, pro, input.readerCumulative, true, &cumulativeBuildPassReader); pro->deref(); result->state = exactOk ? EvalResult::EvalOk : cumulOk ? EvalResult::EvalPartial : EvalResult::EvalFail; } else { diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.h b/src/plugins/qmakeprojectmanager/qmakenodes.h index e7d3a3f8b25..01228a8f9f9 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.h +++ b/src/plugins/qmakeprojectmanager/qmakenodes.h @@ -374,7 +374,9 @@ private: void setupReader(); Internal::EvalInput evalInput() const; - static bool evaluateOne(const Internal::EvalInput &input, ProFile *pro, QtSupport::ProFileReader *reader, QtSupport::ProFileReader **buildPassReader); + static bool evaluateOne( + const Internal::EvalInput &input, ProFile *pro, QtSupport::ProFileReader *reader, + bool cumulative, QtSupport::ProFileReader **buildPassReader); static Internal::EvalResult *evaluate(const Internal::EvalInput &input); void applyEvaluate(Internal::EvalResult *parseResult);