Implement missing replacements when installing .pc files for win32
This implements replacements for win32 makefile generators similar to the replacement functionality in unix makefile generators. To enable Makefile code generation for replacements in win32 makefile generators, you must set QMAKE_STREAM_EDITOR to e.g. sed. When building for win32, sed is normally only available in the mingw/msys build environment and when cross compiling on unix. In these cases QMAKE_STREAM_EDITOR is set to sed in qmake.conf. For other win32 build environments QMAKE_STREAM_EDITOR is not set in qmake.conf and the replacements Makefile code is not generated. Change-Id: Ie5de5d517eafaeaa2544f1e972aec3fe11d0a6f1 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
This commit is contained in:
parent
672e5a4e88
commit
78faefdbb1
@ -79,6 +79,7 @@ QMAKE_SH = bash
|
||||
MINGW_IN_SHELL = 1
|
||||
QMAKE_DIR_SEP = /
|
||||
QMAKE_COPY = cp
|
||||
QMAKE_STREAM_EDITOR = sed
|
||||
QMAKE_COPY_DIR = cp -R
|
||||
QMAKE_MOVE = mv
|
||||
QMAKE_DEL_FILE = rm -f
|
||||
|
@ -79,6 +79,7 @@ QMAKE_LIBS_QT_ENTRY = -lmingw32 -lqtmain
|
||||
QMAKE_DIR_SEP = /
|
||||
QMAKE_QMAKE ~= s,\\\\,/,
|
||||
QMAKE_COPY = cp
|
||||
QMAKE_STREAM_EDITOR = sed
|
||||
QMAKE_COPY_DIR = cp -r
|
||||
QMAKE_MOVE = mv
|
||||
QMAKE_DEL_FILE = rm
|
||||
|
@ -649,6 +649,7 @@ void Win32MakefileGenerator::writeStandardParts(QTextStream &t)
|
||||
t << "DEF_FILE = " << varList("DEF_FILE") << endl;
|
||||
t << "RES_FILE = " << varList("RES_FILE") << endl; // Not on mingw, can't see why not though...
|
||||
t << "COPY = " << var("QMAKE_COPY") << endl;
|
||||
t << "SED = " << var("QMAKE_STREAM_EDITOR") << endl;
|
||||
t << "COPY_FILE = " << var("QMAKE_COPY_FILE") << endl;
|
||||
t << "COPY_DIR = " << var("QMAKE_COPY_DIR") << endl;
|
||||
t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
|
||||
@ -852,7 +853,22 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
|
||||
}
|
||||
if(!ret.isEmpty())
|
||||
ret += "\n\t";
|
||||
ret += "-$(INSTALL_FILE) \"" + pkgConfigFileName(true) + "\" \"" + dst_pc + "\"";
|
||||
const QString 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)";
|
||||
QStringList replace_rules = project->values(replace_rule);
|
||||
for (int r = 0; r < replace_rules.size(); ++r) {
|
||||
const QString match = project->first(replace_rules.at(r) + ".match"),
|
||||
replace = project->first(replace_rules.at(r) + ".replace");
|
||||
if (!match.isEmpty() /*&& match != replace*/)
|
||||
ret += " -e \"s," + match + "," + replace + ",g\"";
|
||||
}
|
||||
ret += " \"" + pkgConfigFileName(true) + "\" >\"" + dst_pc + "\"";
|
||||
}
|
||||
if(!uninst.isEmpty())
|
||||
uninst.append("\n\t");
|
||||
uninst.append("-$(DEL_FILE) \"" + dst_pc + "\"");
|
||||
|
Loading…
Reference in New Issue
Block a user