QmakeProjectManager: Compare the right set of arguments

... when determining whether to re-run qmake.
We need to look at the effective arguments, not the user arguments.
Of course, the whole approach is still a shaky heuristic, but it should
be more correct now than it was before.

Fixes: QTCREATORBUG-24538
Change-Id: I763f8095becacde0f9549890161b8a47c6344b6b
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Christian Kandeler
2020-09-08 10:32:17 +02:00
parent d7229d4afc
commit 1e452f1ad3
4 changed files with 26 additions and 20 deletions

View File

@@ -42,7 +42,8 @@ struct QMakeAssignment
class MakeFileParse
{
public:
MakeFileParse(const QString &makefile);
enum class Mode { FilterKnownConfigValues, DoNotFilterKnownConfigValues };
MakeFileParse(const QString &makefile, Mode mode);
enum MakefileState { MakefileMissing, CouldNotParse, Okay };
@@ -63,7 +64,7 @@ public:
private:
void parseArgs(const QString &args, const QString &project,
QList<QMakeAssignment> *assignments, QList<QMakeAssignment> *afterAssignments);
void parseAssignments(QList<QMakeAssignment> *assignments);
QList<QMakeAssignment> parseAssignments(const QList<QMakeAssignment> &assignments);
class QmakeBuildConfig
{
@@ -74,6 +75,7 @@ private:
bool explicitNoBuildAll = false;
};
const Mode m_mode;
MakefileState m_state;
Utils::FilePath m_qmakePath;
QString m_srcProFile;