forked from qt-creator/qt-creator
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 <orgads@gmail.com>
This commit is contained in:
@@ -1776,7 +1776,7 @@ void QmakeProFileNode::setupReader()
|
|||||||
|
|
||||||
bool QmakeProFileNode::evaluateOne(
|
bool QmakeProFileNode::evaluateOne(
|
||||||
const EvalInput &input, ProFile *pro, QtSupport::ProFileReader *reader,
|
const EvalInput &input, ProFile *pro, QtSupport::ProFileReader *reader,
|
||||||
QtSupport::ProFileReader **buildPassReader)
|
bool cumulative, QtSupport::ProFileReader **buildPassReader)
|
||||||
{
|
{
|
||||||
if (!reader->accept(pro, QMakeEvaluator::LoadAll))
|
if (!reader->accept(pro, QMakeEvaluator::LoadAll))
|
||||||
return false;
|
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
|
// 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
|
auto bpReader = new QtSupport::ProFileReader(input.qmakeGlobals, input.qmakeVfs); // needs to access m_qmakeGlobals, m_qmakeVfs
|
||||||
bpReader->setOutputDir(input.buildDirectory);
|
bpReader->setOutputDir(input.buildDirectory);
|
||||||
|
bpReader->setCumulative(cumulative);
|
||||||
bpReader->setExtraVars(basevars);
|
bpReader->setExtraVars(basevars);
|
||||||
bpReader->setExtraConfigs(basecfgs);
|
bpReader->setExtraConfigs(basecfgs);
|
||||||
|
|
||||||
@@ -1816,8 +1817,8 @@ EvalResult *QmakeProFileNode::evaluate(const EvalInput &input)
|
|||||||
QtSupport::ProFileReader *cumulativeBuildPassReader = nullptr;
|
QtSupport::ProFileReader *cumulativeBuildPassReader = nullptr;
|
||||||
ProFile *pro;
|
ProFile *pro;
|
||||||
if ((pro = input.readerExact->parsedProFile(input.projectFilePath.toString()))) {
|
if ((pro = input.readerExact->parsedProFile(input.projectFilePath.toString()))) {
|
||||||
bool exactOk = evaluateOne(input, pro, input.readerExact, &exactBuildPassReader);
|
bool exactOk = evaluateOne(input, pro, input.readerExact, false, &exactBuildPassReader);
|
||||||
bool cumulOk = evaluateOne(input, pro, input.readerCumulative, &cumulativeBuildPassReader);
|
bool cumulOk = evaluateOne(input, pro, input.readerCumulative, true, &cumulativeBuildPassReader);
|
||||||
pro->deref();
|
pro->deref();
|
||||||
result->state = exactOk ? EvalResult::EvalOk : cumulOk ? EvalResult::EvalPartial : EvalResult::EvalFail;
|
result->state = exactOk ? EvalResult::EvalOk : cumulOk ? EvalResult::EvalPartial : EvalResult::EvalFail;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -374,7 +374,9 @@ private:
|
|||||||
void setupReader();
|
void setupReader();
|
||||||
Internal::EvalInput evalInput() const;
|
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);
|
static Internal::EvalResult *evaluate(const Internal::EvalInput &input);
|
||||||
void applyEvaluate(Internal::EvalResult *parseResult);
|
void applyEvaluate(Internal::EvalResult *parseResult);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user