diff options
author | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-02-06 15:30:02 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> | 2015-02-17 18:27:29 +0000 |
commit | e3a7237d8214bb229997730775fd89d06b9db269 (patch) | |
tree | b37a9b71c19a6b69d67d0234ad0d2783b983e2a4 /qmake/generators/makefile.h | |
parent | c0d67bb5c9370408ca68f21925de5ec9e89ad9cb (diff) |
fix quoting issues. all of them. (*)
instead of quoting more or less random variable contents early,
consistently quote everything only right before it is needed. this way
we can be sure that everything is correctly quoted, but not over-quoted.
this removed the need for the insanity that unescapeFilePath() and
similar ad-hoc contraptions were.
this had the somewhat counter-intuitive effect that it was possible to
remove escapeFilePath() calls from PBX::writeSettings() calls - these
were actually only unescaping.
[ChangeLog][qmake][Important Behavior Changes] A lot of quoting issues
have been fixed. As a side effect, qmake has become more sensitive to
over-quoted file names in project files.
(*) ok, maybe not. close enough.
Task-number: fatal: out of memory
Change-Id: I8c51cfffb59ccd156b46bd5c56754c480667443a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'qmake/generators/makefile.h')
-rw-r--r-- | qmake/generators/makefile.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h index 972127916c..7282d3ad1f 100644 --- a/qmake/generators/makefile.h +++ b/qmake/generators/makefile.h @@ -133,15 +133,12 @@ protected: QMakeProject *project; //escape - virtual QString unescapeFilePath(const QString &path) const; - ProString unescapeFilePath(const ProString &path) const; - virtual QStringList unescapeFilePaths(const QStringList &path) const; - ProStringList unescapeFilePaths(const ProStringList &path) const; virtual QString escapeFilePath(const QString &path) const { return path; } ProString escapeFilePath(const ProString &path) const; QStringList escapeFilePaths(const QStringList &paths) const; ProStringList escapeFilePaths(const ProStringList &paths) const; virtual QString escapeDependencyPath(const QString &path) const { return escapeFilePath(path); } + ProString escapeDependencyPath(const ProString &path) const; QStringList escapeDependencyPaths(const QStringList &paths) const; ProStringList escapeDependencyPaths(const ProStringList &paths) const; @@ -211,6 +208,10 @@ protected: QString varGlue(const ProKey &var, const QString &before, const QString &glue, const QString &after) const; QString varList(const ProKey &var) const; QString fixFileVarGlue(const ProKey &var, const QString &before, const QString &glue, const QString &after) const; + QString fileVarList(const ProKey &var) const; + QString fileVarGlue(const ProKey &var, const QString &before, const QString &glue, const QString &after) const; + QString fileVar(const ProKey &var) const; + QString depVar(const ProKey &var) const; QString val(const ProStringList &varList) const; QString val(const QStringList &varList) const; QString valGlue(const QStringList &varList, const QString &before, const QString &glue, const QString &after) const; @@ -220,6 +221,9 @@ protected: QString filePrefixRoot(const QString &, const QString &); + ProStringList fixLibFlags(const ProKey &var); + virtual ProString fixLibFlag(const ProString &lib); + //file fixification to unify all file names into a single pattern enum FileFixifyType { FileFixifyAbsolute, FileFixifyRelative, FileFixifyDefault }; QString fileFixify(const QString& file, const QString &out_dir=QString(), |