summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/generators/win32/mingw_make.cpp7
-rw-r--r--tests/auto/tools/qmake/testdata/include_pwd/anotherheader.h2
-rw-r--r--tests/auto/tools/qmake/testdata/include_pwd/include_pwd.pro4
-rw-r--r--tests/auto/tools/qmake/testdata/include_pwd/main.cpp6
-rw-r--r--tests/auto/tools/qmake/testdata/include_pwd/somedirectory/someheader.h1
-rw-r--r--tests/auto/tools/qmake/tst_qmake.cpp9
6 files changed, 29 insertions, 0 deletions
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
index a630d19f07..36772e60ac 100644
--- a/qmake/generators/win32/mingw_make.cpp
+++ b/qmake/generators/win32/mingw_make.cpp
@@ -320,6 +320,13 @@ void MingwMakefileGenerator::writeIncPart(QTextStream &t)
{
t << "INCPATH = ";
+ if (!project->isActiveConfig("no_include_pwd")) {
+ QString pwd = escapeFilePath(fileFixify(qmake_getpwd()));
+ if (pwd.isEmpty())
+ pwd = ".";
+ t << "-I" << pwd << " ";
+ }
+
const ProStringList &incs = project->values("INCLUDEPATH");
for (ProStringList::ConstIterator incit = incs.begin(); incit != incs.end(); ++incit) {
QString inc = (*incit).toQString();
diff --git a/tests/auto/tools/qmake/testdata/include_pwd/anotherheader.h b/tests/auto/tools/qmake/testdata/include_pwd/anotherheader.h
new file mode 100644
index 0000000000..a3a63e26bf
--- /dev/null
+++ b/tests/auto/tools/qmake/testdata/include_pwd/anotherheader.h
@@ -0,0 +1,2 @@
+
+/* This file should be included indirectly through main.cpp */
diff --git a/tests/auto/tools/qmake/testdata/include_pwd/include_pwd.pro b/tests/auto/tools/qmake/testdata/include_pwd/include_pwd.pro
new file mode 100644
index 0000000000..c00815f5b4
--- /dev/null
+++ b/tests/auto/tools/qmake/testdata/include_pwd/include_pwd.pro
@@ -0,0 +1,4 @@
+TEMPLATE = app
+SOURCES = main.cpp
+CONFIG -= debug_and_release_target
+INCLUDEPATH += somedirectory
diff --git a/tests/auto/tools/qmake/testdata/include_pwd/main.cpp b/tests/auto/tools/qmake/testdata/include_pwd/main.cpp
new file mode 100644
index 0000000000..c98935f87d
--- /dev/null
+++ b/tests/auto/tools/qmake/testdata/include_pwd/main.cpp
@@ -0,0 +1,6 @@
+#include "someheader.h"
+
+int main()
+{
+ return 0;
+}
diff --git a/tests/auto/tools/qmake/testdata/include_pwd/somedirectory/someheader.h b/tests/auto/tools/qmake/testdata/include_pwd/somedirectory/someheader.h
new file mode 100644
index 0000000000..f977346945
--- /dev/null
+++ b/tests/auto/tools/qmake/testdata/include_pwd/somedirectory/someheader.h
@@ -0,0 +1 @@
+#include "anotherheader.h"
diff --git a/tests/auto/tools/qmake/tst_qmake.cpp b/tests/auto/tools/qmake/tst_qmake.cpp
index 54032ad750..b940e57543 100644
--- a/tests/auto/tools/qmake/tst_qmake.cpp
+++ b/tests/auto/tools/qmake/tst_qmake.cpp
@@ -76,6 +76,7 @@ private slots:
void duplicateLibraryEntries();
void export_across_file_boundaries();
void include_dir();
+ void include_pwd();
void install_files();
void install_depends();
void quotedfilenames();
@@ -320,6 +321,14 @@ void tst_qmake::include_dir()
QVERIFY( test_compiler.makeDistClean( buildDir ));
}
+void tst_qmake::include_pwd()
+{
+ QString workDir = base_path + "/testdata/include_pwd";
+ QVERIFY( test_compiler.qmake( workDir, "include_pwd" ));
+ QVERIFY( test_compiler.make( workDir ));
+ QVERIFY( test_compiler.makeDistClean( workDir ));
+}
+
void tst_qmake::install_files()
{
QString workDir = base_path + "/testdata/shadow_files";