summaryrefslogtreecommitdiffstats
path: root/patches/0012-Have-qmake-run-syncqt-automatically-if-sync.profile-.patch
blob: dc8b081176eb7987f75e7b759dd8ff4f59f1f015 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
From 13f02fcd304c8160d11355eafa9cb9b1327f021b Mon Sep 17 00:00:00 2001
From: Marius Storm-Olsen <marius.storm-olsen@nokia.com>
Date: Wed, 24 Nov 2010 19:56:41 -0600
Subject: [PATCH] Have qmake run syncqt automatically, if sync.profile is
 detected

This will normally only happen for top-level pro files,
and syncqt is smart enough to not touch already existing
files. And in edition, syncqt uses the original file's
timestamp on the fwding files.
---
 qtbase/mkspecs/features/default_pre.prf |   28 ++++++++++++++++++++++++++++
 1 files changed, 28 insertions(+), 0 deletions(-)

diff --git a/qtbase/mkspecs/features/default_pre.prf b/qtbase/mkspecs/features/default_pre.prf
index 2e82f03..b8779c8 100644
--- a/qtbase/mkspecs/features/default_pre.prf
+++ b/qtbase/mkspecs/features/default_pre.prf
@@ -1,3 +1,31 @@
 load(exclusive_builds)
 ### Qt 5: remove "uic" and "resources" - or add "qt"
 CONFIG = lex yacc warn_on debug uic resources $$CONFIG
+
+exists($$_PRO_FILE_PWD_/sync.profile) {
+    PRO_BASENAME = $$basename(_PRO_FILE_)
+
+    # Try to detect proper QTDIR path. We require QTDIR, as syncqt uses that to create qt_module.pri
+    # forwarding files. If we don't find QTDIR, we avoid creating the fwd files, since you then need
+    # to do a 'make install;' before you can use the module
+    # (ie. we don't use QT_INSTALL_DATA for fwd includes. This path needs a full copy)
+    isEmpty(QTDIR) {
+        QTDIR = $$(QTDIR)
+        isEmpty(QTDIR):QTDIR = $$QT_BUILD_TREE
+        isEmpty(QTDIR):QTDIR = $$dirname(_QMAKE_CACHE_)
+        isEmpty(QTDIR) {
+            QMAKE_BASED_QTDIR = $$dirname(QMAKE_QMAKE)
+            QMAKE_BASED_QTDIR = $$dirname(QMAKE_BASED_QTDIR)
+            exists($$QMAKE_BASED_QTDIR/mkspecs/qconfig.pri): QTDIR = $$QMAKE_BASED_QTDIR
+            unset(QMAKE_BASED_QTDIR)
+        }
+    }
+
+    isEmpty(QTDIR):QTFWD="-no-module-fwd"
+    else:QTFWD="-qtdir $$QTDIR"
+
+    message("Running syncqt for $$PRO_BASENAME in $$OUT_PWD")
+    system("$$QTDIR/bin/syncqt $$QTFWD -outdir $$OUT_PWD $$_PRO_FILE_PWD_")
+    unset(QTFWD)
+    unset(PRO_BASENAME)
+}
-- 
1.7.5.rc2.4.g4d8b3