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

* qt_functions: temporary remove isEmpty check
* now we assume that every build will provide QT_EXTERNAL_HOST_BINS value
* isEmpty works correctly only with qmake variables (e.g. $$FOO -
  isEmpty(FOO)), but doesn't work with system properties like $$[FOO].

* cmake: Use OE_QMAKE_PATH_EXTERNAL_HOST_BINS to determine path to host binaries

Upstream-Status: Pending
  is a lot better for upstreaming (and it was already sort of approved by
  Oswald) but in 5.2.0 I've noticed that he added something similar for
  android builds

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Simon Busch <morphis@gravedo.de>
Signed-off-by: Jonathan Liu <net147@gmail.com>
configureapp: Prefix default LIBDIRS and INCDIRS with SYSROOT

Upstream-Status: Pending
  again a bit OE specific
qt_module: Fix pkgconfig and libtool replacements

* 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

* 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

* fix paths in packageconfig files
  This reverts parts of:

  enable path replacement in installed prl files on all platforms

  Task-number: QTBUG-33794
  Change-Id: Id0d38715673b8a1c0c034e9c15783eb255c4315b
  Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>

* to debug this, rebuild qtbase and read build/src/corelib/Makefile
* this is example of broken install_target rule (added line feeds):
  -$(SED) -e s,/OE/5.3.1-r0/build/lib,/usr/lib,g
          -e 's,/OE/5.3.1-r0/build/include,$$\{includedir},g'
          -e 's,/OE/5.3.1-r0/build/lib,$$\{libdir},g'
     "../../lib/pkgconfig/Qt5Core.pc"
     >"$(INSTALL_ROOT)/usr/lib/pkgconfig/Qt5Core.pc"
  change .prf files, create copy of WORKDIR, re-excecute only
  do_configure task and compare generated Makefile, repeat until
  replace in generated Makefile works ok, then refresh patch and
  try complete rebuild for qtbase
* if everything is ok, then try:
  image $ grep -R "\-L/usr" .
  image $ grep -R "\-I/usr" .
  and it should return only few cases of
  qmake.conf:QMAKE_LFLAGS_THREAD     = -L/usr/lib/threads
  for aix* platformas

Change-Id: Ie1c94b15f2a4e736b65b4d0924d99eb2a7d92a6c
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Revert "eglfs: Print the chosen config in debug mode"

This reverts commit dc685cf6331f5fb46285cf10d6464c2ecf41f73e.
qeglplatformintegration: Undefine CursorShape from X.h

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
configure: bump path length from 256 to 512 characters

Increase the path length that gets hardcoded into generated config.cpp file
from 256 to 512 characters, as nativesdk path can be quite long.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
eglfs: fix egl error for platforms only supporting one window/surface

running qmlscene -platform eglfs <filename>.qml

caused

EGL Error : Could not create the egl surface: error = 0x3003

Rebased version of [1-2]

Upstream-Status: unknown

[1] http://repository.timesys.com/buildsources/q/qt-everywhere-opensource/qt-everywhere-opensource-5.1.1/qt-everywhere-opensource-5.1.1-qeglfswindow.cpp.patch
[2] https://github.com/prabindh/qt-configs/blob/master/qt5_1.0_Feb13/qeglfswindow.cpp.patch

Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Revert "Use the "gcc" feature in simd.prf"

This reverts commit 3b00cc480400d47c59c29d3507c7fcdc9be2a489.
QOpenGLPaintDevice sub-area support

Allows creating QOpenGLPaintDevice targetting sub-area
of binded framebuffer.

Upstream-Status: Pending

Change-Id: Ida2f079aa1ac0b87d36b54129e226399dbcdda80

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
qmake: don't build it in configure, but allow to build it separately

* it is already built in qtbase-native, so we don't need it in configure
* allow building a separate qmake for the target

Upstream-Status: Inappropriate [configuration]
  OE specific for native/target builds

Signed-off-by: Yu Ke <ke.yu@intel.com>
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>