Commit 93917b6980 introduced the
installation of the binary .qm translation files, unconditionally.
This patch introduces an option to disable this behavior, saving
almost 8MB of space.
[Thomas: rename option to BR2_PACKAGE_QT_TRANSLATION_FILES instead of
BR2_PACKAGE_QT_INSTALL_TRANSLATION_FILES, and move its definition
around the installation of examples/demos rather than in the middle of
the options for the different modules.]
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
When building Qt in a minimal configuration, a couple of Qt modules
(QtNetwork, QtSql, QtTest and QtXml) are built in addition to QtCore,
so they are installed in the sysroot but they are not copied into the
target tree.
Among these modules that could be built but optionally installed, only
QtTest had no option to allow being installed in the target fs.
Thus, programs linking against QtTest would successfully build, but
would miserably fail at runtime due to this missing dependency.
So far, the only package triggering this issue is OpenCV (the highgui
module built with Qt support).
A followup patch will add this missing dependency in OpenCV using this
new option.
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Since qt's version has been bumped to 4.8.6 we can add support for
webkit on MIPS64 architectures (both big and little endian). It wasn't
possible on 4.8.5 because QtScript wasn't supported on MIPS64, but that
has been fixed on 4.8.6.
With reference to:
https://codereview.qt-project.org/#change,73022
Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
Reviewed-by: Markos Chandras <Markos.Chandras@imgtec.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, this will allow us to switch libegl to use the
soon-to-be-introduced virtual-package infrastructure.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Mike Zick <minimod@morethan.org>
Cc: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The basic rule for a package is to have its options named
after the package name. There is no reason this should not
also be the case for virtual packages.
Besides, this will allow us to switch libgles to use the
soon-to-be-introduced virtual-package infrastructure.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Eric Le Bihan <eric.le.bihan.dev@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com>
Cc: Mike Zick <minimod@morethan.org>
Cc: Samuel Martin <s.martin49@gmail.com>
Reviewed-by: Samuel Martin <s.martin49@gmail.com>
Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
Acked-by: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
All of qt.mk's target installs ensure that their destinations exist,
except for /usr/lib. So do the same for /usr/lib, for consistency,
and in case some combination of custom fs skeleton plus dependency
on Qt leads to installing without a pre-existing /usr/lib directory.
Signed-off-by: Danomi Manchego <danomimanchego123@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
Reviewed-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
When a package A depends on config option B and toolchain option C, then
the comment that is given when C is not fulfilled should also depend on B.
For example:
config BR2_PACKAGE_A
depends on BR2_B
depends on BR2_LARGEFILE
depends on BR2_WCHAR
comment "A needs a toolchain w/ largefile, wchar"
depends on !BR2_LARGEFILE || !BR2_WCHAR
This comment should actually be:
comment "A needs a toolchain w/ largefile, wchar"
depends on BR2_B
depends on !BR2_LARGEFILE || !BR2_WCHAR
or if possible (typically when B is a package config option declared in that
same Config.in file):
if BR2_B
comment "A needs a toolchain w/ largefile, wchar"
depends on !BR2_LARGEFILE || !BR2_WCHAR
[other config options depending on B]
endif
Otherwise, the comment would be visible even though the other dependencies
are not met.
This patch adds such missing dependencies, and changes existing such
dependencies from
depends on BR2_BASE_DEP && !BR2_TOOLCHAIN_USES_GLIBC
to
depends on BR2_BASE_DEP
depends on !BR2_TOOLCHAIN_USES_GLIBC
so that (positive) base dependencies are separate from the (negative)
toolchain dependencies. This strategy makes it easier to write such comments
(because one can simply copy the base dependency from the actual package
config option), but also avoids complex and long boolean expressions.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
(untested)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The BR2_PACKAGE_QT_JAVASCRIPTCORE option was available to force the
activation or disabling of the JIT compiler in the Qt Javascript
interpreter. However, the JIT compiler is not available for all
architectures, so forcing its activation does not always
work. Moreover, Qt knows by itself for which architectures JIT support
is possible, and will automatically enable it if possible.
Therefore, this option was in fact useless, and causing build problems
when enabled on architectures for which the JIT support was not
available. This commit removes this option and there is no
replacement: Qt will enable JIT at compile time when possible.
Fixes:
http://autobuild.buildroot.org/results/aae/aaeb82753b7654eeca679ded5d0211ceebda3ea2/build-end.loghttp://autobuild.buildroot.org/results/367/3670e4f03ff0ce114c90bd7139243d82c427b52a/build-end.log
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
WebKit has some architecture specific support, and therefore is not
necessarily available for all architectures. Make sure the Qt WebKit
option cannot be selected on those architectures that are not
supported.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
This patch lines up the comments in Config.in files that clarify which
toolchain options the package depends on.
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
The Qt translation files are currently created and moved under
$(STAGING_DIR)/usr/translations but not installed on the target.
This patch defines the translations directory to
/usr/share/qt/translations and defines a QT_INSTALL_TARGET_TRANSLATIONS
macro to deploy them from the staging directory to the target directory.
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Use the following to test:
/usr/share/qt/examples/opengl/hellogl_es2/hellogl_es2 -qws -display powervr
Signed-off-by: Spenser Gilliland <spenser@gillilanding.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Sundareson, Prabindh <prabu@ti.com>
Cc: Peter Korsgaard <jacmet@uclibc.org>
Cc: Sinan Akpolat <sinan@linkas.com.tr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The mysql_client package is only available on architectures having a
MMU, so all packages that are selecting mysql_client should depend on
BR2_USE_MMU.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
When selecting the Qt declarative module, all the QML imports was
built and installed to staging, but never installed to the target.
Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
Acked-by: Alexander Lukichev <alexander.lukichev@gmail.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tested-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Precompiled header implementation is buggy in current Qt as described at
http://comments.gmane.org/gmane.comp.lib.qt.devel/5933.
The only known workaround is currently to add -no-pch to configure.
Fixes build failure terminating with error
compiling ../3rdparty/pixman/pixman-arm-neon-asm.S
cc1: fatal error: .pch/release-shared-emb-arm/QtGui: No such file or directory
compilation terminated.
such as:
http://autobuild.buildroot.net/results/648265012591280fa592a239f86ee39aec2d5fa6/build-end.log
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Finally get rid of all := used for variable definitions in packages,
as we suggest in our manual and during the review of new packages.
While I was at it, I also sometimes added a few missing new lines
between the header and the first variable definition.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The Qt configure option for specifying a custom qconfig.h
file changed from -config to -qconfig. This makes the
corresponding change in qt.mk.
Signed-off-by: Frank Hunleth <fhunleth@troodon-software.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In order to solve
http://autobuild.buildroot.org/results/34f6843137efda20626af72714c110280ec577d7/build-end.log,
this patch makes the D-Bus package as well as all the packages that
select the D-Bus package 'depends on BR2_USE_MMU'.
In addition, for the specific case of gvfs, the missing
BR2_TOOLCHAIN_HAS_THREADS dependency is added (threads are required by
D-Bus, so they are also required by gvfs which selects D-Bus).
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The problem has to do with const-correctness. This has been resolved
for various architectures, but not for the generic case.
Signed-off-by: Mischa Jonker <mischa.jonker@synopsys.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Some parts of alsa-lib correctly use threads only when available, but
some other parts, especially certain PCM plugins, unconditionally
require threads. While it would certainly be possible to fix alsa-lib
to only use threads when available, it probably doesn't make much
sense, since on an embedded system that has audio, we are probably
powerful enough to enable thread support in the C library.
Fixes:
http://autobuild.buildroot.org/results/e14469be7f6171f4c8c0c09c8e32943819f7938b/build-end.log
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
As can be seen on the build result at
http://autobuild.buildroot.org/results/20f1078ef7dc5f187b04c63ef70e8b43acf9bb3a/build-end.log,
D-Bus requires thread support in the toolchain.
This commit adjusts the Kconfig dependencies of D-Bus and all its
reverse dependencies to depend on thread support in the toolchain.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The Qt configuration and installation process is a bit strange, and it
leads the .pc files to contain absolute paths to the staging
directory, while it should only contains paths relative to the staging
directory, because pkg-config already adds the path of the sysroot
automatically to the headers and libraries locations.
This allows the 'pkg-config --cflags' results for Qt libraries to be
correct.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
The upstream URL for Buildroot packages is usually visible in the Config.in
file, not in comments in the Makefile.
Moreover, this URL does not point to the correct upstream project.
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In fact, not only qt can install stuff in $(STAGING_DIR)/usr/mkspecs,
but also libraries that wish to integrate with qmake, such as
qwt. However, qmake and al. will look inside $(HOST_DIR)/usr/mkspecs,
so the easiest solution is to have a symbolic link between the two
directories, instead of copying things around.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Closes#4297
Tweak qmake.conf to ensure our cross pkg-config is used, instead of
whatever is first in the path. In order to do this, tweak the
QT_QMAKE_SET to be able to handle variables which aren't prefixed with
QMAKE_.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Thanks to the pkgparentdir and pkgname functions, we can rewrite the
GENTARGETS macro in a way that avoids the need for each package to
repeat its name and the directory in which it is present.
[Peter: pkgdir->pkgparentdir]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The embedded sqlite module forces FILE_OFFSET_BITS=64 unless
SQLITE_DISABLE_LFS is defined, breaking the build for !largefile toolchains.
Webkit internally builds sqlite, so that's affected as well.
Fix it by passing -DSQLITE_DISABLE_LFS in C/CXXFLAGS for !largefile
builds, similar to how we do it for the standalone sqlite package.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Otherwise configure errors out with:
Error: QtDeclarative was requested, but it can't be built due to
QtScript or QtGui being disabled.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Daniel Mack <zonque@gmail.com>
Acked-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The QtScriptTools library depends on the QtGui library, as can be seen
in the src/src.pro file of the Qt sources :
!contains(QT_CONFIG, no-gui):contains(QT_CONFIG, scripttools): SRC_SUBDIRS += src_scripttools
If the scripttools are enabled in the Qt configuration, but not the
gui, then the scripttools library is not built by Qt, and the
Buildroot build process fails with:
cp: cannot stat `/home/test/outputs/test-502/host/usr/sh4-unknown-linux-gnu/sysroot/usr/lib/libQtScriptTools.so.*': No such file or directory
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Now that we use a wrapper for external toolchains (and internal ones
default to the correct setting), we no longer need to explicitly pass
sysroot/march/mtune/mabi/floating point mode in TARGET_CFLAGS.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
qmake is built during the execution of Qt ./configure script, so it is
built just with a normal make, not taking advantage of parallel
compilation. Passing MAKEFLAGS=-j$(BR2_JLEVEL) allows to speed up the
qmake compilation process quite a bit.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Since the conversion of Qt to GENTARGETS in
421cda1fd0, plugin installation could
break in some situations, for example if SQL support was enabled, but
without any SQL driver: the sql plugin directory doesn't exist, but
our qt.mk wanted to copy it.
This patches simplifies the plugin handling a bit, and basically
copies all Qt plugins installed in the $(STAGING_DIR) to the
$(TARGET_DIR), assuming Qt has only built and installed the needed
plugins.
Moreover, instead of installing plugins to usr/plugins, which is a odd
location, we install them in usr/lib/qt/plugins. This requires a small
patch to Qt ./configure script so that even when -hostprefix is used,
the -plugindir option is taken into account.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In addition to converting the qt package to the GENTARGETS
infrastructure, this commit also does the following (related) things
in the Qt package:
* Create a BR2_PACKAGE_QT_CONFIG_FILE option, which can be used to
pass a custom Qt configuration file, such as the ones found in
src/corelib/global/qconfig-*.h. This used to be possible, but
required changing qt.mk directly, which isn't really how we
configure things in Buildroot.
* Remove the BR2_PACKAGE_QT_EMB_PLATFORM option, the embedded
platform name is now computed directly in qt.mk.
* The QT_CONFIGURE variable, which hosted all ./configure options,
has been renamed to QT_CONFIGURE_OPTS, for consistency with what we
do in the AUTOTARGETS infrastructure.
* The QT_DEP_LIBS variable has been renamed to QT_DEPENDENCIES, so
that dependencies are properly handled by the GENTARGETS
infrastructures.
* The QT_QMAKE_SET macro (used to adjust the path/flags of the
compiler/linker) has been extended with an additional argument,
which allows to pass the source directory of Qt.
* All the installation procedure has been rewritten to fit within the
GENTARGETS mechanism.
[Peter: fixed minor issues pointed out by Will]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Acked-by: Will Wagner <willw@carallon.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Seems I somehow got this wrong back in December (bff5248202).
At the same time fix a typo in the comment.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Add an option to use the system sqlite library.
Also drop sqlite2 stub since it's pointless.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Allow the user to build Qt with the QT_NO_QWS_CURSOR macro set.
Signed-off-by: Daniel Nyström <daniel.nystrom@timeterminal.se>
Acked-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The Qt build system installs all host programs (uic, rcc, moc, qmake,
etc.) in the same base directory as the headers and libraries, but
that's not great for Buildroot.
So we now move the host programs and the mkspecs files to the
$(HOST_DIR), and create a qt.conf, which tells qmake where everything
is located.
Tested with Qmake and Cmake as build system for a simple Qt
application.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Closes#2371
Bug 2371 was a Qt compilation issue when MySQL support was enabled,
because the Qt configuration tests were looking at host MySQL
libraries.
Even though I couldn't reproduce the bug with MySQL libraries
installed on my host, there was clearly a problem since
-I/usr/include/mysql and -L/usr/lib/mysql were part of the compilation
flags when building those tests.
This was caused by the fact that /usr/bin/mysql_config was used
instead of $(STAGING_DIR)/usr/bin/mysql_config. We fix this by passing
the path to the correct mysql_config script using the -mysql_config Qt
./configure argument. Since this mysql_config script returns the
correct flags for libraries and headers path, the hardcoded -I and -L
flag in qt.mk are no longer needed.
With this in place, Qt is no longer compiled with -I/usr/include/mysql
and -L/usr/lib/mysql, which presumably should fix the problem reported
in bug 2371.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Building WebKit or Script engine support would select JIT support
in JavaScriptCore. Not all platforms support JIT, so remove the
selects to allow the option to be modified by users.
Signed-off-by: Will Newton <will.newton@imgtec.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Also add option to build example and demo code
[Peter: fix patch handling]
Signed-off-by: Paul Jones <paul@pauljones.id.au>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
qt's configure script is getting confused now that we're passing --sysroot=
in QMAKE_CC / QMAKE_CXX, causing misdetection of features and runtime
breakage.
Fix it by passing --sysroot in CFLAGS/CXXFLAGS instead.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
If BR2_PACKAGE_QT_AUDIO_BACKEND=y, QtMultimedia requires the audio backend
to be already in staging in order to compile.
The backend is system-dependent, but since buildroot builds Linux systems
only, it is safe to assume that the it will always be ALSA.
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
We don't have the needed dependencies in BR for most of the SQL drivers,
so mark those options as broken.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
With BR2_PACKAGE_QT_MULTIMEDIA=y, libQtMultimedia.so.* was not
copied to the target directory.
Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>