Add linux-oe-g++ platform

* This qmake.conf unlike other platforms reads most variables from
  shell environment, because it's easier for qt recipes to export
  *FLAGS or CC specific for given recipe

* configure: add getQEvalMakeConf and getXQEvalMakeConf
  Allow expansion of $(...) references from qmake.conf to generate
  qmake environment from shell environment as exported by qmake5_base

* OE_QMAKE_CXX in order to allow compiler version check to succeed
  which allows WebKit to be enabled.

* Other variables in order to let config.tests to use our -platform
  settings

* Add setBootstrapEvalVariable to bootstrap qmake with our environment
  too, this allows us to use -platform linux-oe-g++ also for native
  recipe

* disable gdb_dwarf_index
  * qmake is trying to call native gdb and we don't depend on gdb-native
    (or even provide gdb-native)
  * fixes errors like this:
    /bin/sh: gdb: command not found
    /bin/sh: line 0: test: -gt: unary operator expected
    which are not fatal, but still misleading in do_configure output

Upstream-Status: Pending

Change-Id: Ia0cc6a6b00ec78442d80ed2a3cf40b604588a0f6
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
qlibraryinfo: allow to set qt.conf from the outside using the environment

Allow to set a qt.conf from the outside using the environment. This allows
to inject new prefixes and other paths into qmake. This is needed when using
the same qmake binary to build qt/x11 and qt/embedded

Upstream-Status: Pending

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Add -external-hostbindir option

* when cross-compiling it's sometimes useful to use existing tools from machine
  (or in OpenEmbedded built with separate native recipe) when building for target

* this way we can skip bootstraping tools we already have

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
qmake is already built in qtbase-native

Ported from OE by: Yu Ke <ke.yu@intel.com>
Upstream-Status: Inappropriate [configuration]

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Allow building a separate qmake for the target

Upstream-Status: Inappropriate [config]

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
qt_functions: temporary remove isEmpty check

* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
configure: Add ExternalHostBinaries and Sysroot to bin/qt.conf

* ExternalHostBinaries isn't set in qtbase-native, so we need to force it for target qtbase
* Sysroot value is different between qtbase-native and qtbase, this is different then when
  qtbase is built host_build + device_build together
configureapp: Prefix default LIBDIRS and INCDIRS with SYSROOT

Change-Id: I275b30f67bc477d8e9a008f4894198859ec45017
qt_module: Fix pkgconfig replacement

* in situation like this:
  QT_SYSROOT:/OE/oe-core/tmp-eglibc/sysroots/qemuarm
  QT_INSTALL_LIBS:/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib
  QT_INSTALL_LIBS/raw:/usr/lib
  QT_INSTALL_LIBS/get:/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib

  I don't want the replacement like this:
  sed
    -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/include,/usr/include/qt5,g"
    -e "s,/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/build/lib,/usr/lib,g"
    "../../lib/pkgconfig/Qt5Core.pc"
    >"/OE/oe-core/tmp-eglibc/work/armv5te-oe-linux-gnueabi/qtbase/5.0.0-r0.0/image/OE/oe-core/tmp-eglibc/sysroots/qemuarm/usr/lib/pkgconfig/Qt5Core.pc"
  because that way I'll end with -L/usr/lib in .pc file which is
  cross-compile unfriendly, keeping ${libdir}/${includedir} works better
  in my case

Change-Id: Id0f9143c012b7fe7bb7bab0055687f4e0517f653
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
qmake/property: rename QT_INSTALL_CONFIGURATION to QT_INSTALL_SETTINGS

* this variable is referenced from configure and configureapp.cpp as QT_INSTALL_SETTINGS
  property.cpp was only place using name QT_INSTALL_CONFIGURATION

Upstream-Status: Submitted
https://codereview.qt-project.org/54912

Change-Id: I3ba40d5f8773fe9aea728c5b2418aa55cecc92da
qt_module: Fix paths in .prl files

* qmake does not prefix them with QT_SYSROOT when using them
  so e.g. when building qtdeclarative we get -L/usr/lib to LINKAGE
  variable, which is unsafe for cross-compilation
* writting QT_SYSROOT in .prl files is dangerous for sstate when
  builds are in different directories, so we need
  SSTATE_SCAN_FILES += "*.pri *.prl"
  to make them relocateble

Change-Id: I4b66dcad539a3ba876d8e4ee2eb2ccd626cd03ea
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
wayland-scanner: disable silent rules

* for some reason "$$qtwayland-server-header.commands" on second line gets expanded as -server-header.commands

Change-Id: I1ffb04c01311f08984bc2a8c1cc92cb963d3e147
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Always build uic

Even if we are not building gui or widgets. This tool is needed later
as a native tool when compiling the target.

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>