xref: /OK3568_Linux_fs/yocto/meta-qt5/recipes-qt/qt5/qtbase/0001-Add-linux-oe-g-platform.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunFrom 8f7ac021d483eca1b181fd9f0551f317aa7c5965 Mon Sep 17 00:00:00 2001
2*4882a593SmuzhiyunFrom: Martin Jansa <Martin.Jansa@gmail.com>
3*4882a593SmuzhiyunDate: Mon, 15 Apr 2013 04:29:32 +0200
4*4882a593SmuzhiyunSubject: [PATCH] Add linux-oe-g++ platform
5*4882a593Smuzhiyun
6*4882a593Smuzhiyun* This qmake.conf unlike other platforms reads most variables from
7*4882a593Smuzhiyun  shell environment, because it's easier for qt recipes to export
8*4882a593Smuzhiyun  *FLAGS or CC specific for given recipe
9*4882a593Smuzhiyun
10*4882a593Smuzhiyun* configure: extend setBootstrapVariable to convert $$(...) operator
11*4882a593Smuzhiyun  to $(...) operator to work in qmake's Makefiles
12*4882a593Smuzhiyun
13*4882a593Smuzhiyun* configure.prf: Allow to add extra arguments to make
14*4882a593Smuzhiyun  sometimes we would like to add -e or define some variable and respect it from both
15*4882a593Smuzhiyun  Makefiles used in configure tests and also Makefiles to build the application
16*4882a593Smuzhiyun
17*4882a593SmuzhiyunUpstream-Status: Inappropriate [embedded specific]
18*4882a593Smuzhiyun                 too OE specific, probably cannot be upstreamed
19*4882a593Smuzhiyun
20*4882a593SmuzhiyunChange-Id: I0591ed5da0d61d7cf1509d420e6b293582f1863c
21*4882a593SmuzhiyunSigned-off-by: Martin Jansa <Martin.Jansa@gmail.com>
22*4882a593Smuzhiyun
23*4882a593Smuzhiyun---
24*4882a593Smuzhiyun configure                            |  2 +-
25*4882a593Smuzhiyun mkspecs/features/configure.prf       |  4 +--
26*4882a593Smuzhiyun mkspecs/features/qt.prf              |  6 ++---
27*4882a593Smuzhiyun mkspecs/features/qt_functions.prf    |  2 +-
28*4882a593Smuzhiyun mkspecs/linux-oe-g++/qmake.conf      | 40 ++++++++++++++++++++++++++++
29*4882a593Smuzhiyun mkspecs/linux-oe-g++/qplatformdefs.h |  1 +
30*4882a593Smuzhiyun 6 files changed, 48 insertions(+), 7 deletions(-)
31*4882a593Smuzhiyun create mode 100644 mkspecs/linux-oe-g++/qmake.conf
32*4882a593Smuzhiyun create mode 100644 mkspecs/linux-oe-g++/qplatformdefs.h
33*4882a593Smuzhiyun
34*4882a593Smuzhiyundiff --git a/configure b/configure
35*4882a593Smuzhiyunindex b6c9b462f2..4e3fcd41d1 100755
36*4882a593Smuzhiyun--- a/configure
37*4882a593Smuzhiyun+++ b/configure
38*4882a593Smuzhiyun@@ -708,7 +708,7 @@ fi
39*4882a593Smuzhiyun # is where the resulting variable is written to
40*4882a593Smuzhiyun setBootstrapVariable()
41*4882a593Smuzhiyun {
42*4882a593Smuzhiyun-    getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
43*4882a593Smuzhiyun+    getQMakeConf "$1" | sed 's:\$\$(:\$(:' | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
44*4882a593Smuzhiyun }
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun # build qmake
47*4882a593Smuzhiyundiff --git a/mkspecs/features/configure.prf b/mkspecs/features/configure.prf
48*4882a593Smuzhiyunindex 934a18a924..0f5b1b6333 100644
49*4882a593Smuzhiyun--- a/mkspecs/features/configure.prf
50*4882a593Smuzhiyun+++ b/mkspecs/features/configure.prf
51*4882a593Smuzhiyun@@ -46,14 +46,14 @@ defineTest(qtCompileTest) {
52*4882a593Smuzhiyun     }
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun     # Clean up after previous run
55*4882a593Smuzhiyun-    exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE distclean")
56*4882a593Smuzhiyun+    exists($$test_out_dir/Makefile):qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS) distclean")
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun     mkpath($$test_out_dir)|error()
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun     !isEmpty (QMAKE_QTCONF): qtconfarg = -qtconf $$QMAKE_QTCONF
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun     qtRunLoggedCommand("$$test_cmd_base $$system_quote($$system_path($$QMAKE_QMAKE)) $$qtconfarg -spec $$QMAKESPEC $$qmake_configs $$shell_quote($$test_dir)") {
63*4882a593Smuzhiyun-        qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE") {
64*4882a593Smuzhiyun+        qtRunLoggedCommand("$$test_cmd_base $$QMAKE_MAKE $$(QMAKE_MAKE_ARGS)") {
65*4882a593Smuzhiyun             log("yes$$escape_expand(\\n)")
66*4882a593Smuzhiyun             msg = "test $$1 succeeded"
67*4882a593Smuzhiyun             write_file($$QMAKE_CONFIG_LOG, msg, append)
68*4882a593Smuzhiyundiff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
69*4882a593Smuzhiyunindex 69d1954306..37f7c9c4a2 100644
70*4882a593Smuzhiyun--- a/mkspecs/features/qt.prf
71*4882a593Smuzhiyun+++ b/mkspecs/features/qt.prf
72*4882a593Smuzhiyun@@ -151,7 +151,7 @@ import_plugins:qtConfig(static) {
73*4882a593Smuzhiyun             plug_name = $$QMAKE_PREFIX_STATICLIB$${plug}$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB
74*4882a593Smuzhiyun             plug_path = $$eval(QT_PLUGIN.$${plug}.PATH)
75*4882a593Smuzhiyun             isEmpty(plug_path): \
76*4882a593Smuzhiyun-                plug_path = $$[QT_INSTALL_PLUGINS/get]
77*4882a593Smuzhiyun+                plug_path = $$[QT_INSTALL_PLUGINS]
78*4882a593Smuzhiyun             LIBS += $$plug_path/$$plug_type/$$plug_name
79*4882a593Smuzhiyun         } else {
80*4882a593Smuzhiyun             LIBS += -l$${plug}$$qtPlatformTargetSuffix()
81*4882a593Smuzhiyun@@ -274,8 +274,8 @@ for(ever) {
82*4882a593Smuzhiyun # static builds: link qml import plugins into the target.
83*4882a593Smuzhiyun contains(all_qt_module_deps, qml): \
84*4882a593Smuzhiyun         qtConfig(static):import_plugins:!host_build:!no_import_scan {
85*4882a593Smuzhiyun-    exists($$[QT_INSTALL_QML/get]): \
86*4882a593Smuzhiyun-        QMLPATHS *= $$[QT_INSTALL_QML/get]
87*4882a593Smuzhiyun+    exists($$[QT_INSTALL_QML]): \
88*4882a593Smuzhiyun+        QMLPATHS *= $$[QT_INSTALL_QML]
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun     # run qmlimportscanner
91*4882a593Smuzhiyun     qtPrepareTool(QMLIMPORTSCANNER, qmlimportscanner, , system)
92*4882a593Smuzhiyundiff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
93*4882a593Smuzhiyunindex 7777e615bd..8d792fa70a 100644
94*4882a593Smuzhiyun--- a/mkspecs/features/qt_functions.prf
95*4882a593Smuzhiyun+++ b/mkspecs/features/qt_functions.prf
96*4882a593Smuzhiyun@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
97*4882a593Smuzhiyun defineTest(qtPrepareTool) {
98*4882a593Smuzhiyun     cmd = $$eval(QT_TOOL.$${2}.binary)
99*4882a593Smuzhiyun     isEmpty(cmd) {
100*4882a593Smuzhiyun-        cmd = $$[QT_HOST_BINS]/$$2
101*4882a593Smuzhiyun+        cmd = $$[QT_HOST_BINS/get]/$$2
102*4882a593Smuzhiyun         exists($${cmd}.pl) {
103*4882a593Smuzhiyun             $${1}_EXE = $${cmd}.pl
104*4882a593Smuzhiyun             cmd = perl -w $$system_path($${cmd}.pl)
105*4882a593Smuzhiyundiff --git a/mkspecs/linux-oe-g++/qmake.conf b/mkspecs/linux-oe-g++/qmake.conf
106*4882a593Smuzhiyunnew file mode 100644
107*4882a593Smuzhiyunindex 0000000000..087e13bb91
108*4882a593Smuzhiyun--- /dev/null
109*4882a593Smuzhiyun+++ b/mkspecs/linux-oe-g++/qmake.conf
110*4882a593Smuzhiyun@@ -0,0 +1,40 @@
111*4882a593Smuzhiyun+#
112*4882a593Smuzhiyun+# qmake configuration for linux-g++ with modifications for building with OpenEmbedded
113*4882a593Smuzhiyun+#
114*4882a593Smuzhiyun+
115*4882a593Smuzhiyun+MAKEFILE_GENERATOR = UNIX
116*4882a593Smuzhiyun+CONFIG += incremental
117*4882a593Smuzhiyun+QMAKE_INCREMENTAL_STYLE = sublib
118*4882a593Smuzhiyun+
119*4882a593Smuzhiyun+include(../common/linux.conf)
120*4882a593Smuzhiyun+
121*4882a593Smuzhiyun+# QMAKE_<TOOL> (moc, uic, rcc) are gone, overwrite only ar, objcopy and strip
122*4882a593Smuzhiyun+QMAKE_AR              = $$(OE_QMAKE_AR) cqs
123*4882a593Smuzhiyun+QMAKE_OBJCOPY         = $$(OE_QMAKE_OBJCOPY)
124*4882a593Smuzhiyun+QMAKE_STRIP           = $$(OE_QMAKE_STRIP)
125*4882a593Smuzhiyun+
126*4882a593Smuzhiyun+include(../common/gcc-base-unix.conf)
127*4882a593Smuzhiyun+
128*4882a593Smuzhiyun+# *FLAGS from gcc-base.conf
129*4882a593Smuzhiyun+QMAKE_CFLAGS                += $$(OE_QMAKE_CFLAGS)
130*4882a593Smuzhiyun+QMAKE_CXXFLAGS              += $$(OE_QMAKE_CXXFLAGS)
131*4882a593Smuzhiyun+QMAKE_LFLAGS                += $$(OE_QMAKE_LDFLAGS)
132*4882a593Smuzhiyun+
133*4882a593Smuzhiyun+include(../common/g++-unix.conf)
134*4882a593Smuzhiyun+
135*4882a593Smuzhiyun+# tc settings from g++-base.conf
136*4882a593Smuzhiyun+QMAKE_CC       = $$(OE_QMAKE_CC)
137*4882a593Smuzhiyun+QMAKE_CXX      = $$(OE_QMAKE_CXX)
138*4882a593Smuzhiyun+
139*4882a593Smuzhiyun+QMAKE_LINK         = $$(OE_QMAKE_LINK)
140*4882a593Smuzhiyun+QMAKE_LINK_SHLIB   = $$(OE_QMAKE_LINK)
141*4882a593Smuzhiyun+QMAKE_LINK_C       = $$(OE_QMAKE_LINK)
142*4882a593Smuzhiyun+QMAKE_LINK_C_SHLIB = $$(OE_QMAKE_LINK)
143*4882a593Smuzhiyun+QMAKE_CFLAGS_ISYSTEM =
144*4882a593Smuzhiyun+# for the SDK
145*4882a593Smuzhiyun+isEmpty(QMAKE_QT_CONFIG):QMAKE_QT_CONFIG = $$(OE_QMAKE_QT_CONFIG)
146*4882a593Smuzhiyun+
147*4882a593Smuzhiyun+include(../oe-device-extra.pri)
148*4882a593Smuzhiyun+
149*4882a593Smuzhiyun+load(device_config)
150*4882a593Smuzhiyun+load(qt_config)
151*4882a593Smuzhiyundiff --git a/mkspecs/linux-oe-g++/qplatformdefs.h b/mkspecs/linux-oe-g++/qplatformdefs.h
152*4882a593Smuzhiyunnew file mode 100644
153*4882a593Smuzhiyunindex 0000000000..5d22fb4101
154*4882a593Smuzhiyun--- /dev/null
155*4882a593Smuzhiyun+++ b/mkspecs/linux-oe-g++/qplatformdefs.h
156*4882a593Smuzhiyun@@ -0,0 +1 @@
157*4882a593Smuzhiyun+#include "../linux-g++/qplatformdefs.h"
158