summaryrefslogtreecommitdiffstats
path: root/qmake
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-06-21 14:07:10 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2016-06-21 14:07:10 +0000
commitb3100fbadda33fe013e3f1fba3623a63a6dccf47 (patch)
tree0fdd96d90d9c754959e532dfc42988167697eb68 /qmake
parent62b11af31ee090188d828707235d8678ee015e30 (diff)
parentea438b2508f329698e11c6dae6994d441c6e67df (diff)
Merge "Merge remote-tracking branch 'origin/5.7' into dev" into refs/staging/dev
Diffstat (limited to 'qmake')
-rw-r--r--qmake/doc/snippets/code/doc_src_qmake-manual.pro2
-rw-r--r--qmake/generators/makefile.cpp4
-rw-r--r--qmake/generators/makefile.h2
-rw-r--r--qmake/generators/unix/unixmake.cpp7
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp7
-rw-r--r--qmake/generators/win32/msvc_objectmodel.cpp2
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp2
-rw-r--r--qmake/library/qmakebuiltins.cpp7
-rw-r--r--qmake/library/qmakeglobals.cpp4
9 files changed, 26 insertions, 11 deletions
diff --git a/qmake/doc/snippets/code/doc_src_qmake-manual.pro b/qmake/doc/snippets/code/doc_src_qmake-manual.pro
index d98085e5b2..c3b6e6595f 100644
--- a/qmake/doc/snippets/code/doc_src_qmake-manual.pro
+++ b/qmake/doc/snippets/code/doc_src_qmake-manual.pro
@@ -421,7 +421,7 @@ This is a test.
#! [71]
-system(ls /bin):HAS_BIN=FALSE
+system("ls /bin"): HAS_BIN = TRUE
#! [71]
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 762ae66a1a..0d1831d987 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -1954,7 +1954,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
char buff[256];
QString dep_cmd = replaceExtraCompilerVariables(tmp_dep_cmd, inpf, tmp_out, LocalShell);
dep_cmd = dep_cd_cmd + fixEnvVariables(dep_cmd);
- if(FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), "r")) {
+ if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) {
QString indeps;
while(!feof(proc)) {
int read_in = (int)fread(buff, 1, 255, proc);
@@ -2046,7 +2046,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
char buff[256];
QString dep_cmd = replaceExtraCompilerVariables(tmp_dep_cmd, inpf, out, LocalShell);
dep_cmd = dep_cd_cmd + fixEnvVariables(dep_cmd);
- if(FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), "r")) {
+ if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) {
QString indeps;
while(!feof(proc)) {
int read_in = (int)fread(buff, 1, 255, proc);
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
index 41b90eb500..a67a0ec0fc 100644
--- a/qmake/generators/makefile.h
+++ b/qmake/generators/makefile.h
@@ -41,9 +41,11 @@ QT_BEGIN_NAMESPACE
#ifdef Q_OS_WIN32
#define QT_POPEN _popen
+#define QT_POPEN_READ "rb"
#define QT_PCLOSE _pclose
#else
#define QT_POPEN popen
+#define QT_POPEN_READ "r"
#define QT_PCLOSE pclose
#endif
diff --git a/qmake/generators/unix/unixmake.cpp b/qmake/generators/unix/unixmake.cpp
index 80a62a1cc2..b0f7593fbe 100644
--- a/qmake/generators/unix/unixmake.cpp
+++ b/qmake/generators/unix/unixmake.cpp
@@ -601,8 +601,11 @@ UnixMakefileGenerator::defaultInstall(const QString &t)
} else if (project->first("TEMPLATE") == "lib" && project->isActiveConfig("staticlib")) {
copy_cmd += "-$(INSTALL_FILE) " + src_targ + ' ' + dst_targ;
} else if (!isAux) {
- if (bundle == SlicedBundle)
- ret += mkdir_p_asstring("\"`dirname " + dst_targ + "`\"", false) + "\n\t";
+ if (bundle == SlicedBundle) {
+ if (!ret.isEmpty())
+ ret += "\n\t";
+ ret += mkdir_p_asstring("\"`dirname " + dst_targ + "`\"", false);
+ }
copy_cmd += "-$(INSTALL_PROGRAM) " + src_targ + ' ' + dst_targ;
}
if(project->first("TEMPLATE") == "lib" && !project->isActiveConfig("staticlib")
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index 9e1af05414..58d6ecf110 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -374,11 +374,14 @@ void NmakeMakefileGenerator::init()
project->values("QMAKE_DISTCLEAN").append(tgt + ".lib");
}
if (project->isActiveConfig("debug_info")) {
- QString pdbfile = tgt + ".pdb";
+ // Add the compiler's PDB file.
+ QString pdbfile = var("OBJECTS_DIR") + project->first("TARGET") + ".vc.pdb";
QString escapedPdbFile = escapeFilePath(pdbfile);
project->values("QMAKE_CFLAGS").append("/Fd" + escapedPdbFile);
project->values("QMAKE_CXXFLAGS").append("/Fd" + escapedPdbFile);
- project->values("QMAKE_DISTCLEAN").append(pdbfile);
+ project->values("QMAKE_CLEAN").append(pdbfile);
+ // Add the linker's PDB file to the distclean target.
+ project->values("QMAKE_DISTCLEAN").append(tgt + ".pdb");
}
if (project->isActiveConfig("debug")) {
project->values("QMAKE_CLEAN").append(tgt + ".ilk");
diff --git a/qmake/generators/win32/msvc_objectmodel.cpp b/qmake/generators/win32/msvc_objectmodel.cpp
index 5e655464b7..39898567a7 100644
--- a/qmake/generators/win32/msvc_objectmodel.cpp
+++ b/qmake/generators/win32/msvc_objectmodel.cpp
@@ -2318,7 +2318,7 @@ bool VCFilter::addExtraCompiler(const VCFilterFile &info)
dep_cmd.prepend(QLatin1String("cd ")
+ Project->escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
+ QLatin1String(" && "));
- if(FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), "r")) {
+ if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) {
QString indeps;
while(!feof(proc)) {
int read_in = (int)fread(buff, 1, 255, proc);
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index 51cf5abdd4..ee8a31cb1c 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -1544,7 +1544,7 @@ void VcprojGenerator::initResourceFiles()
dep_cmd.prepend(QLatin1String("cd ")
+ escapeFilePath(Option::fixPathToLocalOS(Option::output_dir, false))
+ QLatin1String(" && "));
- if(FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), "r")) {
+ if (FILE *proc = QT_POPEN(dep_cmd.toLatin1().constData(), QT_POPEN_READ)) {
QString indeps;
while(!feof(proc)) {
int read_in = (int)fread(buff, 1, 255, proc);
diff --git a/qmake/library/qmakebuiltins.cpp b/qmake/library/qmakebuiltins.cpp
index de58469a58..1d2b806a26 100644
--- a/qmake/library/qmakebuiltins.cpp
+++ b/qmake/library/qmakebuiltins.cpp
@@ -67,9 +67,11 @@
#ifdef Q_OS_WIN32
#define QT_POPEN _popen
+#define QT_POPEN_READ "rb"
#define QT_PCLOSE _pclose
#else
#define QT_POPEN popen
+#define QT_POPEN_READ "r"
#define QT_PCLOSE pclose
#endif
@@ -471,7 +473,7 @@ QByteArray QMakeEvaluator::getCommandOutput(const QString &args) const
#else
if (FILE *proc = QT_POPEN(QString(QLatin1String("cd ")
+ IoUtils::shellQuote(QDir::toNativeSeparators(currentDirectory()))
- + QLatin1String(" && ") + args).toLocal8Bit().constData(), "r")) {
+ + QLatin1String(" && ") + args).toLocal8Bit().constData(), QT_POPEN_READ)) {
while (!feof(proc)) {
char buff[10 * 1024];
int read_in = int(fread(buff, 1, sizeof(buff), proc));
@@ -481,6 +483,9 @@ QByteArray QMakeEvaluator::getCommandOutput(const QString &args) const
}
QT_PCLOSE(proc);
}
+# ifdef Q_OS_WIN
+ out.replace("\r\n", "\n");
+# endif
#endif
return out;
}
diff --git a/qmake/library/qmakeglobals.cpp b/qmake/library/qmakeglobals.cpp
index f90ad905ee..b02bf4aaf8 100644
--- a/qmake/library/qmakeglobals.cpp
+++ b/qmake/library/qmakeglobals.cpp
@@ -59,9 +59,11 @@
#ifdef Q_OS_WIN32
#define QT_POPEN _popen
+#define QT_POPEN_READ "rb"
#define QT_PCLOSE _pclose
#else
#define QT_POPEN popen
+#define QT_POPEN_READ "r"
#define QT_PCLOSE pclose
#endif
@@ -318,7 +320,7 @@ bool QMakeGlobals::initProperties()
data = proc.readAll();
#else
if (FILE *proc = QT_POPEN(QString(QMakeInternal::IoUtils::shellQuote(qmake_abslocation)
- + QLatin1String(" -query")).toLocal8Bit(), "r")) {
+ + QLatin1String(" -query")).toLocal8Bit(), QT_POPEN_READ)) {
char buff[1024];
while (!feof(proc))
data.append(buff, int(fread(buff, 1, 1023, proc)));