Commit Graph

52 Commits

Author SHA1 Message Date
Alexandre Belloni
d9c741cce2 qmake5: don't always look in directories recursively
QT needs to be compiled without the -r parameter from the qmake command
line. This is necessary to avoid those errors when building
qtdeclarative or qt3d without opengl for example:
Project ERROR: Unknown module(s) in QT: quick-private
or
Project ERROR: Unknown module(s) in QT: quick

Also update comments regarding the dependencies.

Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2015-02-19 15:55:39 +01:00
Martin Jansa
e2f5adc92c qmake5_base: add *.prf to SSTATE_SCAN_FILES
* e.g. maliit-framework-qt5 is staging sysroot specific paths in
  sysroot-destdir/usr/lib/qt5/mkspecs/features/maliit-plugins.prf
  sysroot-destdir/usr/lib/qt5/mkspecs/features/maliit-framework.prf
  make sure they are replaced with correct ones on sstate reuse

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2015-01-06 15:58:55 +01:00
Anders Darander
5b8f470597 qmake5: set OE_QMAKE_INCDIR_QT
This is set when generation an SDK, and thus would be usefull to have also
when bitbaking. That allows us to use this in *.prf files which is used
both when bitbaking as well as when using the SDK.

Signed-off-by: Anders Darander <anders@chargestorm.se>
(cherry picked from commit 96e8d29fdbdf6fa656c854d9b55c5b0c213166a7)
Acked-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2014-12-01 17:18:27 +01:00
Otavio Salvador
2f1b8fe630 Fix SDK environment setting
Since the change to use a meta-environment canadian package in the
OE-Core, the SDK environment setting has been broken. This uses the
new subscript environment to fix it and also move the environment
generation to the nativesdk-qtbase recipe.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2014-10-16 17:35:21 -03:00
Jacob Kroon
05ed65d225 populate_sdk_qt5.bbclass: Fix PACKAGE_GROUP deprecation warning
Fixes the following warning:

WARNING: PACKAGE_GROUP is deprecated, please use FEATURE_PACKAGES instead

Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2014-05-09 14:40:23 +02:00
Otavio Salvador
deb2473ee9 populate_sdk_qt5.bbclass: Add support for qtcreator-debug
This adds a new image feature for easier remote debugging with
QtCreator.

The qtcreator-debug needs to be added as a valid item for image
features and having it inside the populate_sdk_qt5 is too late. User
will see a parser error as OE-Core images does not inherit the classs.
The possible workaround for it is to include it inside layer.conf file
until a kind of "bbclassappend" support is in place.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Tested-by: Giulian Vivan <giulian@ossystems.com.br>
2014-02-28 10:47:04 -03:00
Otavio Salvador
e55d3ef36a populate_sdk_qt5.bbclass: Fix symlink location for QtCreator use
The QtCreator is quite broken regarding finding the mkspecs files; so
to workaround it we must to add a symlink to it. The workaround was in
place but in the wrong sysroot, it must to be in the /native/ one.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Jonathan Liu <net147@gmail.com>
2014-02-25 08:36:57 -03:00
Otavio Salvador
2bd5fba34d qmake5_paths.bbclass: Use Qt version path for headers
When looking for Qt5 headers we ought to use the Qt5 specific path. In
case the distribution wants to have a flat tree it can set QT_DIR_NAME
and it will still works as expected.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2014-02-24 09:21:21 -03:00
Otavio Salvador
578657f7b6 qmake5_base.bbclass: Fix mkspec path when building nativesdk binaries
When building nativesdk binaries we ought to rely in the native
mkspecs.

Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Acked-by: Denys Dmytriyenko <denys@ti.com>
2014-02-17 17:47:27 -03:00
Otavio Salvador
f803570841 populate_sdk_qt5.bbclass: Allow generation of toolchain
This allow the toolchain generation using '-c populate_sdk' as it
includes the need host libraries into the SDK.

Signed-off-by: Denys Dmytriyenko <denys@ti.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
2014-02-11 15:34:46 -02:00
Bhooshan Supe
2340ce8714 qttools-native: Add module to build lrelease+lupdate+lconvert
:Release Notes:
Add optional Qt-Tools module.

:Detailed Notes:
Qt provide optional Qt-Tools like "lrelease", etc.
In absence of these tools one can not have i18n and l10n changes automated in build.
Adding "qttools-native" to "meta-qt5" Open Embedded layer provides those tools.
Using Qt-Tools i18n and l10n changes can be auomated.

:Testing Performed:

:QA Notes:

:Issues Addressed:
[GF-11028] Enable build of Qt localization tools in the Qt component

Change-Id: Ieb679249a05501a6ccb25108903a0fd48d4014f0
2013-09-13 14:32:02 +02:00
Simon Busch
ee6c2abf6a classes: cmake_qt5: export all qt5 related paths to cmake
Signed-off-by: Simon Busch <morphis@gravedo.de>
2013-08-02 11:27:25 +02:00
Simon Busch
6b39eda7a6 classes: add new cmake_qt5 class
A cmake specific qt5 class which sets all required configuration parameters to
successfully compile cmake based applications.

Signed-off-by: Simon Busch <morphis@gravedo.de>
2013-07-25 22:33:59 +02:00
Simon Busch
b0100c1b57 classes: qmake5: move QT_DIR_NAME to qmake5_paths
* qmake5_paths.bbclass refers to QT_DIR_NAME but it's defined on a higher level which
  doesn't makes sense and breaks some use cases

Signed-off-by: Simon Busch <morphis@gravedo.de>
2013-07-25 20:12:14 +00:00
Martin Jansa
ca4a0758e1 qmake5_base: add override for HostLibraries
* qtdeclarative was using /usr/lib as HostLibraries causing
  WARNING: QA Issue: qtdeclarative: The compile log indicates that host include and/or library paths were used.
           Please check the log 'qtdeclarative/5.1.0-r0/temp/log.do_compile' for more information.
  DEBUG 1: /OE/oe-core/tmp-eglibc/sysroots/qemux86-64/usr/lib/qt5/mkspecs/features/qt_config.prf:23: QT_MODULE_HOST_LIB_BASE := /usr/lib
* also without this fix qtdeclarative and qtwayland are trying to
  build tools against /usr/lib/libQt5Bootstrap.a (without sysroot
  prefix)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-07-25 12:14:11 +02:00
Martin Jansa
b9b00aaad4 qmake5: Add trailing space in DEPENDS_prepend instead of QT5TOOLSDEPENDS
* this way it looks better in bitbake -e, instead of:
  ${QT5TOOLSDEPENDS}${BASEDEPENDS}

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-07-03 19:18:36 +02:00
Martin Jansa
4c197c6223 qmake5_base: Define OE_QMAKE_PATH_QT_* variables
* and move it to separate .bbclass which is easier to
  replace in distro layer when you don't care about
  conflicts with qt4

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 21:41:32 +02:00
Martin Jansa
727b27e936 qmake5: move default do_configure and do_install to qmake5.bbclass
* it's useful for many recipes outside qt5 and easy to overwrite when needed
2013-05-09 19:16:32 +02:00
Martin Jansa
48138bfb27 qtbase: use EXTRA_OEMAKE also in config.tests executed in do_configure
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 16:54:03 +02:00
Martin Jansa
d8314098bf qmake5: drop QT_DIR_NAME subdirectory from many OE_QMAKE_PATH_* variables and add it back in qt5.inc
* we're using QT_DIR_NAME subdirectory mostly to prevent conflicts with existing files from qt4
  but setting it in all OE_QMAKE_PATH_* variables causes all apps which are just using qmake to
  build to install e.g. in /qt5 which for stuff like qterminal or something doesn't
  sound right (as long as there isn't qterminal4 and qterminal5 recipe)

* some variables are kept with default QT_DIR_NAME, e.g. qml, imports, plugins we can assume that
  every application which installs some QML files will install them in location shared by all

* add qt5-native.inc which also adds this QT_DIR_NAME and common
  inherits (later will be used also by qtwayland-native.inc)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 13:56:49 +02:00
Martin Jansa
7caede7850 qmake5: Fix cleaning separate build directory and use it by default
* "${B}/*" in quotes doesn't match anything, better to remove whole directory
  (incluing .files) and recreate it
* not sure why I've added quotes after testing first version, we don't
  expect B with spaces.. but I'm a bit scared with rm -rf ${SOME_VAR}
  after one glibc upgrade cleaned my whole disk and attached NFS array
  when OLD_LOCALE_PATH wasn't detected correctly...
* qmake works well with separate B, use it by default

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 13:56:49 +02:00
Martin Jansa
56d2c7f18d qmake5_base: export OE_QMAKE variables only in qtbase recipes
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 13:56:49 +02:00
Martin Jansa
1965248b7b qmake5: use QT_CONF_PATH variable in do_generate_qt_config_file
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 13:55:04 +02:00
Martin Jansa
9773d8eb22 qmake5_base: drop default -e from EXTRA_OEMAKE and add variables we want to override
* exports are still needed at least for qtbase configure script (which
  is using our special eval variant of getQ(X)MakeConf functions
  but maybe we should move them only to qtbase now

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-09 13:54:57 +02:00
Martin Jansa
f40204dc97 qmake5_base: disable debug output by default
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-07 17:19:10 +02:00
Martin Jansa
f76e45b5a8 qt5: drop EXTRA_ENV
* all variables should be now correctly set by qmake
* setting PARALLEL_MAKE in MAKEFLAGS can cause
  PARALLEL_MAKE * PARALLEL_MAKE processes, because first
  -j is applied on top level directory and then again in
  each subdir, but it's faster then make -j PARALLEL_MAKE
  only in top directory
* setting QMAKE breaks build in src/tools/bootstrap, because it
  forces relative path bin/qmake which isn't correct

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-07 12:18:41 +02:00
Mikko Levonmaa
bbaf26aec2 qtbase: Find wayland-scanner correctly
* Remove silent rules for wayland-scanner

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@palm.com>
Signed-off-by: Martin Jansa <martin.jansa@lge.com>
2013-05-05 12:56:34 +02:00
Martin Jansa
d57e27ec08 qt5: Instead of fixing paths after installation, fix them in Makefile before
* thanks to Mikko Levonmaa
* move it from qt5.inc to qmake5_base.bbclass, because it can be useful
  for other apps too

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-05 12:56:34 +02:00
Martin Jansa
66c091481c qmake5_base: define variables for paths used by qmake in one place
* makes it easier to change them, should be reused also in FILES_*
  variables
* table of path variables and their different names available at
  https://github.com/meta-qt5/meta-qt5/wiki/Building-with-OE
* all variables have OE_QMAKE_PATH_ prefix and then name from qmake
  varaible

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-05 12:56:34 +02:00
Martin Jansa
18d2e711d8 qmake5_base: add qmake5_base_do_configure which allows to declare QMAKE_VARSUBST_*
* don't export it, let recipe decide where to call it or even if it
  should be called (native recipes are not using it)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-05-05 12:56:32 +02:00
Martin Jansa
2790c1607e qmake5: drop exports already exported in qmake5_base 2013-04-28 15:55:10 +02:00
Martin Jansa
eed206da36 qt5: move SSTATE_SCAN_FILES to qmake5_base.bbclass
* penalty for more replacements is better then to forget to add this
  in some component which will also install .prl files
2013-04-28 15:55:09 +02:00
Martin Jansa
a5783e1a09 qtbase: Override all paths and export sysroot
* otherwise sysroot from native build can leak to target build
* missing paths like Qml2Imports were defaulting to devault /usr/qml
* synchronize values between qt.conf and configure params
2013-04-28 15:55:05 +02:00
Martin Jansa
09516373c0 qmake: allow to disable debug output
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-04-28 13:39:57 +02:00
Martin Jansa
e89e33fd17 qmake_base: remove QT_DIR_NAME from libdir
* using ${libdir}/${QT_DIR_NAME} is causing pkgconfig files to be
  installed in this prefix too
* modify ArchData variable to move mkspecs files to qt5 prefix (so that
  they don't conflict with qt4)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-04-28 13:39:57 +02:00
Martin Jansa
06ae6e8c9e qtbase5_base: move binaries and libs to QT_DIR_NAME
* mkspecs are now installed to libdir/${QT_DIR_NAME}
* use the same qt.conf for all qtbase5_base, only qtbase-native is different now
2013-04-28 13:39:33 +02:00
Martin Jansa
def240608a qmake5_base: add Plugins settings
* otherwise plugins are installed in /lib/plugins
2013-04-28 13:39:32 +02:00
Martin Jansa
40436b7fc9 qmake5_base: don't push AR to EXTRA_ENV
* it overwrites value set from shell env in qmake.conf and ar is loosing cqs params
  mkspecs/linux-oe-g++/qmake.conf:QMAKE_AR = $(OE_QMAKE_AR) cqs

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-04-28 13:39:32 +02:00
Martin Jansa
fe65aed339 qtbase: improve internal build system to support OE way of building qt
* add linux-oe-g++ mkspec directly with patch
* add functions to read and eval OE_QMAKE functions from mkspec and
  also export them with QMakeVar to be available also for config.tests
* add external-host-bindir parameter to skip building native tools
  even when we're in fact cross-compiling (because we have them from
  qtbase-native build already).
* use separated ${B} and ${S} and clean ${B} when reconfiguring
  stalled qmake cache can be used when configure is reexecuted
  cleaning ${B} prevents that and provide cleaner separation
* OE_QMAKE_AR cqs is added by Makefile, having it here too was causing
  issues
* isEmpty(QT_EXTERNAL_HOST_BINS) doesn't work, so lets use exist()
  even when it allows to incorrectly set wrong directory and build
  native tools again (instead of skipping them)

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-04-26 00:04:56 +02:00
Martin Jansa
1a2ad7b702 qmake5_base: drop unused exports
UIC/MOC/RCC are no longer defined in generated Makefiles
2013-04-17 16:10:02 +02:00
Martin Jansa
b78a292a58 qtbase: replace g++.conf and linux.conf with qmake.conf
* g++.conf and linux.conf were outdated a lot, lacking new options like
  QMAKE_COMPILER causing a lot of warning like:
  Project WARNING: qmake spec does not announce the compiler family. Guessed gcc.

* Instead of replacing whole common files, use custom qmake.conf which
  overwrites common setting after including it
2013-04-17 16:10:02 +02:00
Martin Jansa
94ca12bf49 qmake5_base: define both QMAKESPEC and let recipe select which one to use
* different platform/xplatform can enable cross-compile build in upstream qmake
  but that's not the same as what recipes are doing (upstream builds native tools
  when bootstraping target qtbase, recipes build native tools with separate
  qtbase-native and then want to skip building tools)
* still separate variables for both QMAKESPECs can be useful e.g. for
  other native recipes
2013-04-17 16:10:01 +02:00
Martin Jansa
e9c61a9e6f qmake: fix MAKEFLAGS when PARALLEL_MAKE has space
* quotes are needed, because some people have '-j 9' instead of '-j9'
* this can in theory cause PARALLEL_MAKE x PARALLEL_MAKE threads, because
  MAKE itself is using PARALLEL_MAKE threads to run inner makes
2013-04-17 16:10:01 +02:00
Martin Jansa
70b1b233b2 qt5-native, qtjsbackend-native: fix .pri and .prl pointing to WORKDIR or absolute sysroot
* fix paralel build
* default make does good job, cleans mkspecs, installs all headers and
  libs needed for qtjsbackend-native
* move native tools to QT_DIR_NAME prefix, this way qt4 and qt5 can be
  staged at the same time
* only variables referencing WORKDIR are now QMAKE_PRL_BUILD_DIR
  ./x86_64-linux/usr/lib/libQt5Network.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/network/
  ./x86_64-linux/usr/lib/libQt5Xml.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/xml/
  ./x86_64-linux/usr/lib/libQt5Bootstrap.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/tools/bootstrap/
  ./x86_64-linux/usr/lib/libQt5Concurrent.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/concurrent/
  ./x86_64-linux/usr/lib/libQt5Core.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/corelib/
  ./x86_64-linux/usr/lib/libQt5Test.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/testlib/
  ./x86_64-linux/usr/lib/libQt5Sql.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/sql/
  ./x86_64-linux/usr/lib/libQt5DBus.prl:QMAKE_PRL_BUILD_DIR = /OE/oe-core/tmp-eglibc/work/x86_64-linux/qt5-native/5.0.1-r0.0/qtbase-opensource-src-5.0.1/src/dbus/

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-04-17 16:09:56 +02:00
Martin Jansa
5d5ba83cc6 qt5-native: rename to qtbase-native to avoid confusion
* we also had PROVIDES for qt5-tools-native, this makes it a bit easier to see what is what
* drop FILESEXTRAPATHS, not needed after renaming to match BPN with qtbase patches

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2013-04-17 16:08:56 +02:00
Mikko Levonmaa
34d4955894 qmake5: library path correction in generated qt.conf
Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
2012-12-14 16:46:41 -08:00
Mikko Levonmaa
bd6c9c28c2 qtbase: fix installations
Created new variables OE_CROSS_INSTALL_DATA and OE_CROSS_HOST_DATA
to support the installation and configuration of qtbase and dependant
modules.

Added paths for Qml2Imports

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
2012-12-09 13:50:26 -08:00
Mikko Levonmaa
b514c5d67a Updated QT_CONF_PATH default values in qmake5_base
This allows the subsequent modules to install correctly. Also during
do_configure we stage target specific file into the staging area and
modify some prf files inorder to make the module (qt_lib_<module>.pri)
files install correctly

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
2012-12-07 08:48:15 -08:00
Mikko Levonmaa
17d2bf1cdd qtbase: mkspecs are now staged correctly
They are placed under STAGING_DATADIR as they need to be
kept separate from the native side. The reason for doing so
is that some qt modules require native tools and the mkspecs
in STAGING_DATADIR_NATIVE cannot be polluted with the target
mkspecs

There are still some packaging issues

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
2012-12-04 17:03:14 -08:00
Mikko Levonmaa
ff173560e2 qtbase: partially resolves module pri installation
The pri files get correctly placed under the work dir, but fail
to stage correctly. Also there are some packaging issues

Signed-off-by: Mikko Levonmaa <mikko.levonmaa@gmail.com>
2012-12-03 11:15:35 -08:00