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>
Gstreamer has complicated dependencies (because of glib2), so use
depends on rather than select. At the same time default phonon support
to Y if gstreamer is available, as this support is likely wanted.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The recent change to use config.guess to figure out GNU_HOST_NAME
broken the x86x86fix detection for 32bit hosts, as config.guess
returns something like i686-pc-linux-gnu rather than something with
*-unknown-linux-* like we used to use.
Fix it by simply looking for "linux" instead.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Instead of having a configuration option BR2_GNU_BUILD_SUFFIX, let's
use config.guess to guess the build system type.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
qt 4.6.x has a number of new configure options, and needs a patch to
work on uClibc.
Signed-off-by: Frederik Vannoote <frederik.vannoote@barco.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Has been marked as broken for more than 1 year, with no indication
that anyone cares, and it needs a bunch of special handling.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
I know 4.6.0 is out, but I don't have a setup to test it at the moment,
so lets stick with 4.5.x for now.
There's apparently no .tar.bz2 of 4.5.3.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
get.qtsoftware.com doesn't seem to work any more. The links on the Qt
website now points to get.qt.nokia.com, so use that instead.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Commit f98547622 (make sure to install all Qt-fonts and true-type-fonts)
changed Qt to install all .qpf fonts to the target instead of only a
hardcoded subset. Some of those fonts are unfortunately quite big (1-2MB)
and are not always needed (japanese, unicode).
Instead add a font selection in Kconfig similar to how it is done for
pixel depths, and default to the subset we were previously using.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
It looks like that nobody is using the commercial license option
because the code is broken (BR2_QT_COMMERCIAL_PASSWORD typo) and
dist.trolltech.com became silent long ago and nobody complained about.
So remove the broken and unused stuff.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The Kconfig menu "Pixel depths" of Qt provides a list with all
selectable pixel depths and additionally the option "all".
When "all" is selected, the list with all available pixel depths
disappears.
Because this disappearing of available pixel depths makes no sense
under usability aspects, simply remove the option "all".
The user could enable all available pixel depths by selecting each
individual depth anyway. So no functionality is lost.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
ccache and precompiled headers don't work together, so disable
precompiled headers when ccache is enabled.
The benefit of ccache compiling Qt a second or more time is much
higher than the costs of disabled precompiled headers in the first run.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Qt gained some more qpf-fonts and also provides some true-type-fonts.
Make sure to install them all inclusive ttf-fonts when freetype-support
is enabled. Additionally the empty 'fontdir' file is really not needed.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The Qt configure script gained the option '-no-xinerama' in the
meantime. So use it instead hacking the script itself using sed.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
QT_CONFIGURE can never gain double quotes, so there
is no point to remove some.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
In Qt there are virtually hundreds of internal debug flags like
TSLIBMOUSEHANDLER_DEBUG for every module or even C++ class. There
is no reason to enable a single such flag when Qt is build with
debugging symbols and others not.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Qt in buildroot should not depend on dbus installed on build platform,
if so this is (or was) a bug in buildroot.
Looks like that this note is left over from ancient buildroot days,
so remove it.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Tested with 4.5.2.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
At least Qt 4.5.2 is fixed in the meantime and honors PKG_CONFIG.
So the PATH workaround is no longer needed.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
All compiler options, switches and path settings are done in the
configure step. For the compile and install step there is no need
for the TARGET_CONFIGURE_OPTS variables.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The variable is only referenced once, so inline it.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The Qt configure script doesn't use config.cache but the
generated Makefile provides a confclean target to properly
clean out old configuration.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The Makefile target 'qt-status' prints pointless information,
so remove it.
Signed-off-by: Michael Roth <mroth@nessie.de>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
A C library will have been built by the toolchain makefiles, so there is no
need for packages to explicitly depend on uclibc.
Signed-off-by: Will Newton <will.newton@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Running a simple Qt GUI application on an embedded systems without
QtNetwork installed doesn't work, the dynamic loader complains that
QtNetwork is not present.
While I'm not a Qt build system expert, it looks like this dependency
really exists, since the src/gui/gui.pri file in Qt sources contains
the following line:
embedded: QT += network
Which would mean that the GUI module needs the network module to
operate properly. And a few files in src/gui/embedded/ also include
some QtNetwork stuff. This isn't really surprising since the Qt QWS
mechanism uses communication between processes through a Unix socket.
Therefore, we add a dependency on the network module in the GUI
module. We use a 'select' dependency here, since it's might not be
really obvious to the user that the GUI module requires the network
one.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Set QMAKE_LFLAGS so that at link time --sysroot is passed to the
linker, and Qt finds the external libraries. This fixes Qt build when
zlib or other libraries are external, instead of using Qt's internal
copy.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Put the Qt options into a submenu to make the configuration interface
easier to use. The comment on the dependency on C++ has to be put
before the menuconfig definition, otherwise kconfig gets confused and
doesn't put the suboptions into a submenu.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
A while ago, Trolltech (now part of Nokia) included Qtopia directly
inside Qt. So let's rename the qtopia4 package to simply qt, which
will be more familiar to our users. Of course, the version we compile
is Qt for Embedded Linux.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>