summaryrefslogtreecommitdiffstats
path: root/tests/auto/qmake
diff options
context:
space:
mode:
authorRohan McGovern <rohan.mcgovern@nokia.com>2011-05-12 17:45:55 +1000
committerRohan McGovern <rohan.mcgovern@nokia.com>2011-05-13 08:59:43 +1000
commit152a10012ce3582ee64d38eca991aae975cffd24 (patch)
tree47a2dab9cba0f414bdf2a84613bf1c21ac5e2acd /tests/auto/qmake
parent1a1471718d6c99a52211ab060f3627c2478bb738 (diff)
Ensure that recursive QMAKE_EXTRA_TARGETS use the correct makefile
Recursive QMAKE_EXTRA_TARGETS were omitting the `-f' option to make. This would break in the case where the correct makefile was not named `Makefile'. The included autotest demonstrates the problem. Note that this was fixed for normal targets back in 2005 by faac7bd178654fd67a6f3f9cf4f6f2605071448d (p4 202370), but was not fixed for extra targets. Reviewed-by: ossi (cherry picked from commit 96a3bf7a8bbc1e5361e16cbeeceb4be674b88c30)
Diffstat (limited to 'tests/auto/qmake')
-rw-r--r--tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/main.cpp3
-rw-r--r--tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/simple.pro5
-rw-r--r--tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir.pro7
-rw-r--r--tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir_via_pro_file_extra_target.pro7
-rw-r--r--tests/auto/qmake/tst_qmake.cpp14
5 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/main.cpp b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/main.cpp
new file mode 100644
index 0000000000..3c850d486b
--- /dev/null
+++ b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/main.cpp
@@ -0,0 +1,3 @@
+int main(int,char**)
+{
+}
diff --git a/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/simple.pro b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/simple.pro
new file mode 100644
index 0000000000..2db08a29af
--- /dev/null
+++ b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/simple/simple.pro
@@ -0,0 +1,5 @@
+TEMPLATE = app
+SOURCES = main.cpp
+
+extratarget.commands = @echo extra target worked OK
+QMAKE_EXTRA_TARGETS += extratarget
diff --git a/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir.pro b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir.pro
new file mode 100644
index 0000000000..be0d80adf0
--- /dev/null
+++ b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+SUBDIRS = simple
+
+extratarget.CONFIG = recursive
+extratarget.recurse = $$SUBDIRS
+extratarget.recurse_target = extratarget
+QMAKE_EXTRA_TARGETS += extratarget
diff --git a/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir_via_pro_file_extra_target.pro b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir_via_pro_file_extra_target.pro
new file mode 100644
index 0000000000..7c07859ae4
--- /dev/null
+++ b/tests/auto/qmake/testdata/subdir_via_pro_file_extra_target/subdir_via_pro_file_extra_target.pro
@@ -0,0 +1,7 @@
+TEMPLATE = subdirs
+SUBDIRS = subdir.pro
+
+extratarget.CONFIG = recursive
+extratarget.recurse = $$SUBDIRS
+extratarget.recurse_target = extratarget
+QMAKE_EXTRA_TARGETS += extratarget
diff --git a/tests/auto/qmake/tst_qmake.cpp b/tests/auto/qmake/tst_qmake.cpp
index 81a51e10f3..afd28e10f4 100644
--- a/tests/auto/qmake/tst_qmake.cpp
+++ b/tests/auto/qmake/tst_qmake.cpp
@@ -69,6 +69,7 @@ private slots:
void simple_lib();
void simple_dll();
void subdirs();
+ void subdir_via_pro_file_extra_target();
void functions();
void operators();
void variables();
@@ -234,6 +235,19 @@ void tst_qmake::subdirs()
QVERIFY( test_compiler.removeMakefile( workDir ) );
}
+void tst_qmake::subdir_via_pro_file_extra_target()
+{
+ QString workDir = base_path + "/testdata/subdir_via_pro_file_extra_target";
+
+ QDir D;
+ D.remove( workDir + "/Makefile");
+ D.remove( workDir + "/Makefile.subdir");
+ D.remove( workDir + "/simple/Makefile");
+ D.remove( workDir + "/simple/Makefile.subdir");
+ QVERIFY( test_compiler.qmake( workDir, "subdir_via_pro_file_extra_target" ));
+ QVERIFY( test_compiler.make( workDir, "extratarget" ));
+}
+
void tst_qmake::functions()
{
QString workDir = base_path + "/testdata/functions";