summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2013-01-11 00:30:41 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-01-25 23:30:50 +0100
commitd089ecb711afcd13a32e24103e270ba000cdc68c (patch)
tree9bea9b79d5dd730e9c5f26bf6226b86d92233250
parentf210a8593450049fc366098cab040daea10ca758 (diff)
consolidate generation of metafile install targets
Metafiles such as .prl and .pc files contain paths that have to be adjusted during installation. The same code is used for unix and windows so move it into the base class. Change-Id: I82db89ec83820a4fa0214ba15e7cd63438f6dc91 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
-rw-r--r--qmake/generators/makefile.cpp21
-rw-r--r--qmake/generators/makefile.h2
-rw-r--r--qmake/generators/unix/unixmake.cpp23
-rw-r--r--qmake/generators/win32/winmakefile.cpp17
4 files changed, 27 insertions, 36 deletions
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index abf0f60f8f..444556d467 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -3285,4 +3285,25 @@ MakefileGenerator::writePkgConfigFile()
t << endl;
}
+QString MakefileGenerator::installMetaFile(const ProKey &replace_rule, const QString &src, const QString &dst)
+{
+ QString ret;
+ if (project->isEmpty(replace_rule)
+ || project->isActiveConfig("no_sed_meta_install")
+ || project->isEmpty("QMAKE_STREAM_EDITOR")) {
+ ret += "-$(INSTALL_FILE) \"" + src + "\" \"" + dst + "\"";
+ } else {
+ ret += "-$(SED)";
+ const ProStringList &replace_rules = project->values(replace_rule);
+ for (int r = 0; r < replace_rules.size(); ++r) {
+ const ProString match = project->first(ProKey(replace_rules.at(r) + ".match")),
+ replace = project->first(ProKey(replace_rules.at(r) + ".replace"));
+ if (!match.isEmpty() /*&& match != replace*/)
+ ret += " -e \"s," + match + "," + replace + ",g\"";
+ }
+ ret += " \"" + src + "\" >\"" + dst + "\"";
+ }
+ return ret;
+}
+
QT_END_NAMESPACE
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
index 0800ad317e..2f3e73ff6b 100644
--- a/qmake/generators/makefile.h
+++ b/qmake/generators/makefile.h
@@ -248,6 +248,8 @@ protected:
inline QStringList fileFixify(const QStringList& files, FileFixifyType fix, bool canon=true) const
{ return fileFixify(files, QString(), QString(), fix, canon); }
+ QString installMetaFile(const ProKey &replace_rule, const QString &src, const QString &dst);
+
public:
MakefileGenerator();
virtual ~MakefileGenerator();
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
index 7a9239c28d..da0da53e05 100644
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -868,32 +868,15 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
if(!uninst.isEmpty())
uninst.append("\n\t");
uninst.append("-$(DEL_FILE) \"" + dst_meta + "\"");
- const ProKey replace_rule("QMAKE_" + type.toUpper() + "_INSTALL_REPLACE");
const QString dst_meta_dir = fileInfo(dst_meta).path();
if(!dst_meta_dir.isEmpty()) {
if(!ret.isEmpty())
ret += "\n\t";
ret += mkdir_p_asstring(dst_meta_dir, true);
}
- QString install_meta = "$(INSTALL_FILE) \"" + src_meta + "\" \"" + dst_meta + "\"";
- if(project->isEmpty(replace_rule) || project->isActiveConfig("no_sed_meta_install")) {
- if(!ret.isEmpty())
- ret += "\n\t";
- ret += "-" + install_meta;
- } else {
- if(!ret.isEmpty())
- ret += "\n\t";
- ret += "-$(SED)";
- const ProStringList &replace_rules = project->values(replace_rule);
- for(int r = 0; r < replace_rules.size(); ++r) {
- const ProString &match = project->first(ProKey(replace_rules.at(r) + ".match")),
- &replace = project->first(ProKey(replace_rules.at(r) + ".replace"));
- if(!match.isEmpty() /*&& match != replace*/)
- ret += " -e \"s," + match + "," + replace + ",g\"";
- }
- ret += " \"" + src_meta + "\" >\"" + dst_meta + "\"";
- //ret += " || " + install_meta;
- }
+ if (!ret.isEmpty())
+ ret += "\n\t";
+ ret += installMetaFile(ProKey("QMAKE_" + type.toUpper() + "_INSTALL_REPLACE"), src_meta, dst_meta);
}
}
}
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index 36e3860a03..3831e08ed4 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -851,22 +851,7 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
}
if(!ret.isEmpty())
ret += "\n\t";
- const ProKey replace_rule("QMAKE_PKGCONFIG_INSTALL_REPLACE");
- if (project->isEmpty(replace_rule)
- || project->isActiveConfig("no_sed_meta_install")
- || project->isEmpty("QMAKE_STREAM_EDITOR")) {
- ret += "-$(INSTALL_FILE) \"" + pkgConfigFileName(true) + "\" \"" + dst_pc + "\"";
- } else {
- ret += "-$(SED)";
- const ProStringList &replace_rules = project->values(replace_rule);
- for (int r = 0; r < replace_rules.size(); ++r) {
- const ProString match = project->first(ProKey(replace_rules.at(r) + ".match")),
- replace = project->first(ProKey(replace_rules.at(r) + ".replace"));
- if (!match.isEmpty() /*&& match != replace*/)
- ret += " -e \"s," + match + "," + replace + ",g\"";
- }
- ret += " \"" + pkgConfigFileName(true) + "\" >\"" + dst_pc + "\"";
- }
+ ret += installMetaFile(ProKey("QMAKE_PKGCONFIG_INSTALL_REPLACE"), pkgConfigFileName(true), dst_pc);
if(!uninst.isEmpty())
uninst.append("\n\t");
uninst.append("-$(DEL_FILE) \"" + dst_pc + "\"");