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