Commit cd303046 authored by Oswald Buddenhagen's avatar Oswald Buddenhagen
Browse files

fix cumulative qmake evaluation in debug_and_release configs



don't fail to make the build pass evaluator cumulative as well.

Task-number: QTCREATORBUG-17214
Change-Id: I217578b7d29d0dcf9ef63c954ec403412812c70c
Reviewed-by: Orgad Shaneh's avatarOrgad Shaneh <orgads@gmail.com>
parent 8bf8b5f6
......@@ -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 {
......
......@@ -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);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment