* [Buildroot] [pull request] Pull request for branch for-2011.05/qt-migration
@ 2011-03-20 14:19 Thomas Petazzoni
2011-03-20 14:19 ` [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure Thomas Petazzoni
0 siblings, 1 reply; 6+ messages in thread
From: Thomas Petazzoni @ 2011-03-20 14:19 UTC (permalink / raw)
To: buildroot
The following changes since commit 0a064b48c9d1044b05aee65272f5af7f28879473:
Gustavo Zacarias (1):
gst-ffmpeg: bump to version 0.10.11
are available in the git repository at:
git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.05/qt-migration
Thomas Petazzoni (1):
qt: convert to the GENTARGETS infrastructure
package/qt/Config.in | 35 ++--
package/qt/qt.mk | 623 +++++++++++++++++++++++---------------------------
2 files changed, 302 insertions(+), 356 deletions(-)
Thanks,
--
Thomas Petazzoni
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure
2011-03-20 14:19 [Buildroot] [pull request] Pull request for branch for-2011.05/qt-migration Thomas Petazzoni
@ 2011-03-20 14:19 ` Thomas Petazzoni
2011-03-24 20:57 ` Luca Ceresoli
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Thomas Petazzoni @ 2011-03-20 14:19 UTC (permalink / raw)
To: buildroot
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.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/qt/Config.in | 35 ++--
package/qt/qt.mk | 623 +++++++++++++++++++++++---------------------------
2 files changed, 302 insertions(+), 356 deletions(-)
diff --git a/package/qt/Config.in b/package/qt/Config.in
index 3cc04f4..cc65e14 100644
--- a/package/qt/Config.in
+++ b/package/qt/Config.in
@@ -55,6 +55,19 @@ config BR2_PACKAGE_QT_LICENSE_APPROVED
LGPL v2.1: http://doc.trolltech.com/4.5/lgpl.html
GPL v3.0: http://doc.trolltech.com/4.5/gpl.html
+config BR2_PACKAGE_QT_CONFIG_FILE
+ string "Config file"
+ help
+ Configure options allow to set which modules are being
+ compiled or not in Qt, but Qt also provide a more
+ fine-grained mechanism to configure which features should be
+ enabled or disabled, through a header file. Examples of such
+ header files can be found in src/corelib/global/qconfig-*.h
+ in the Qt sources.
+
+ This option allows to set the path of such a configuration
+ file, which Buildroot will give to Qt at compile time.
+
config BR2_PACKAGE_QT_QT3SUPPORT
bool "Compatibility with Qt3"
depends on BR2_PACKAGE_QT_GUI_MODULE
@@ -240,26 +253,6 @@ config BR2_PACKAGE_QT_SYSTEMZLIB
Use the shared zlib from the system.
endchoice
-config BR2_PACKAGE_QT_EMB_PLATFORM
- string "The embedded platform we are making Qt for"
- default "arm" if BR2_arm
- default "arm" if BR2_armeb
- default "avr32" if BR2_avr32
- default "x86" if BR2_i386
- default "x86_64" if BR2_x86_64
- default "mips" if BR2_mips
- default "mips" if BR2_mipsel
- default "powerpc" if BR2_powerpc
-# Not that I really believe these will work..
- default "generic" if BR2_alpha
- default "generic" if BR2_chris
- default "generic" if BR2_m68k
- default "generic" if BR2_sh
- default "generic" if BR2_sh64
- default "generic" if BR2_sparc
- help
- The target platform.
-
source "package/qt/Config.sql.in"
if BR2_PACKAGE_QT_GUI_MODULE
source "package/qt/Config.gfx.in"
@@ -286,7 +279,7 @@ config BR2_PACKAGE_QT_PHONON_BACKEND
Build the platform Phonon plugin.
If unsure, say n.
-comment "Qt DBbus module not available (need dbus)"
+comment "Qt DBus module not available (need dbus)"
depends on !BR2_PACKAGE_DBUS
config BR2_PACKAGE_QT_DBUS
diff --git a/package/qt/qt.mk b/package/qt/qt.mk
index 6974b2f..d72d711 100644
--- a/package/qt/qt.mk
+++ b/package/qt/qt.mk
@@ -12,51 +12,43 @@
#
######################################################################
-QT_VERSION:=4.7.2
-QT_SOURCE:=qt-everywhere-opensource-src-$(QT_VERSION).tar.gz
-QT_SITE:=http://get.qt.nokia.com/qt/source
-QT_CAT:=$(ZCAT)
-QT_TARGET_DIR:=$(BUILD_DIR)/qt-everywhere-opensource-src-$(QT_VERSION)
+QT_VERSION = 4.7.2
+QT_SOURCE = qt-everywhere-opensource-src-$(QT_VERSION).tar.gz
+QT_SITE = http://get.qt.nokia.com/qt/source
-QT_CONFIGURE:=#empty
+QT_INSTALL_STAGING = YES
ifeq ($(BR2_PACKAGE_QT_LICENSE_APPROVED),y)
-QT_CONFIGURE += -opensource -confirm-license
+QT_CONFIGURE_OPTS += -opensource -confirm-license
endif
-# If you want extra tweaking you can copy
-# $(QT_TARGET_DIR)/src/corelib/global/qconfig-myfile.h
-# to the qt packages directory (where this .mk file is) and
-# remove the comment.
-# QT_QCONFIG_COMMAND:=-qconfig myfile
-#
-# For the options you can set in this file, look at
-# $(QT_TARGET_DIR)/src/corelib/global/qfeatures.txt
-#
-QT_QCONFIG_FILE:=package/qt/qconfig-myfile.h
-QT_QCONFIG_FILE_LOCATION:=/src/corelib/global/
+QT_CONFIG_FILE=$(call qstrip,$(BR2_PACKAGE_QT_CONFIG_FILE))
+
+ifneq ($(QT_CONFIG_FILE),)
+QT_CONFIGURE_OPTS += -config buildroot
+endif
ifeq ($(BR2_LARGEFILE),y)
-QT_CONFIGURE+= -largefile
+QT_CONFIGURE_OPTS += -largefile
else
-QT_CONFIGURE+= -no-largefile
+QT_CONFIGURE_OPTS += -no-largefile
endif
ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y)
-QT_CONFIGURE+= -qt3support
+QT_CONFIGURE_OPTS += -qt3support
else
-QT_CONFIGURE+= -no-qt3support
+QT_CONFIGURE_OPTS += -no-qt3support
endif
ifeq ($(BR2_PACKAGE_QT_DEMOS),y)
-QT_CONFIGURE+= -examplesdir $(TARGET_DIR)/usr/share/qt/examples -demosdir $(TARGET_DIR)/usr/share/qt/demos
+QT_CONFIGURE_OPTS += -examplesdir $(TARGET_DIR)/usr/share/qt/examples -demosdir $(TARGET_DIR)/usr/share/qt/demos
else
-QT_CONFIGURE+= -nomake examples -nomake demos
+QT_CONFIGURE_OPTS += -nomake examples -nomake demos
endif
# ensure glib is built first if enabled for Qt's glib support
ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
-QT_DEP_LIBS+=libglib2
+QT_DEPENDENCIES += libglib2
endif
@@ -90,168 +82,189 @@ ifeq ($(BR2_PACKAGE_QT_PIXEL_DEPTH_32),y)
QT_PIXEL_DEPTHS += 32
endif
ifneq ($(QT_PIXEL_DEPTHS),)
-QT_CONFIGURE += -depths $(subst $(space),$(comma),$(strip $(QT_PIXEL_DEPTHS)))
+QT_CONFIGURE_OPTS += -depths $(subst $(space),$(comma),$(strip $(QT_PIXEL_DEPTHS)))
endif
### Display drivers
ifeq ($(BR2_PACKAGE_QT_GFX_LINUXFB),y)
-QT_CONFIGURE += -qt-gfx-linuxfb
+QT_CONFIGURE_OPTS += -qt-gfx-linuxfb
else
-QT_CONFIGURE += -no-gfx-linuxfb
+QT_CONFIGURE_OPTS += -no-gfx-linuxfb
endif
ifeq ($(BR2_PACKAGE_QT_GFX_TRANSFORMED),y)
-QT_CONFIGURE += -qt-gfx-transformed
+QT_CONFIGURE_OPTS += -qt-gfx-transformed
else
-QT_CONFIGURE += -no-gfx-transformed
+QT_CONFIGURE_OPTS += -no-gfx-transformed
endif
ifeq ($(BR2_PACKAGE_QT_GFX_QVFB),y)
-QT_CONFIGURE += -qt-gfx-qvfb
+QT_CONFIGURE_OPTS += -qt-gfx-qvfb
else
-QT_CONFIGURE += -no-gfx-qvfb
+QT_CONFIGURE_OPTS += -no-gfx-qvfb
endif
ifeq ($(BR2_PACKAGE_QT_GFX_VNC),y)
-QT_CONFIGURE += -qt-gfx-vnc
+QT_CONFIGURE_OPTS += -qt-gfx-vnc
else
-QT_CONFIGURE += -no-gfx-vnc
+QT_CONFIGURE_OPTS += -no-gfx-vnc
endif
ifeq ($(BR2_PACKAGE_QT_GFX_MULTISCREEN),y)
-QT_CONFIGURE += -qt-gfx-multiscreen
+QT_CONFIGURE_OPTS += -qt-gfx-multiscreen
else
-QT_CONFIGURE += -no-gfx-multiscreen
+QT_CONFIGURE_OPTS += -no-gfx-multiscreen
endif
ifeq ($(BR2_PACKAGE_QT_GFX_DIRECTFB),y)
-QT_CONFIGURE += -qt-gfx-directfb
-QT_DEP_LIBS+=directfb
+QT_CONFIGURE_OPTS += -qt-gfx-directfb
+QT_DEPENDENCIES+=directfb
else
-QT_CONFIGURE += -no-gfx-directfb
+QT_CONFIGURE_OPTS += -no-gfx-directfb
endif
### Mouse drivers
ifeq ($(BR2_PACKAGE_QT_MOUSE_PC),y)
-QT_CONFIGURE += -qt-mouse-pc
+QT_CONFIGURE_OPTS += -qt-mouse-pc
else
-QT_CONFIGURE += -no-mouse-pc
+QT_CONFIGURE_OPTS += -no-mouse-pc
endif
ifeq ($(BR2_PACKAGE_QT_MOUSE_LINUXTP),y)
-QT_CONFIGURE += -qt-mouse-linuxtp
+QT_CONFIGURE_OPTS += -qt-mouse-linuxtp
else
-QT_CONFIGURE += -no-mouse-linuxtp
+QT_CONFIGURE_OPTS += -no-mouse-linuxtp
endif
ifeq ($(BR2_PACKAGE_QT_MOUSE_LINUXINPUT),y)
-QT_CONFIGURE += -qt-mouse-linuxinput
+QT_CONFIGURE_OPTS += -qt-mouse-linuxinput
else
-QT_CONFIGURE += -no-mouse-linuxinput
+QT_CONFIGURE_OPTS += -no-mouse-linuxinput
endif
ifeq ($(BR2_PACKAGE_QT_MOUSE_TSLIB),y)
-QT_CONFIGURE += -qt-mouse-tslib
-QT_DEP_LIBS+=tslib
+QT_CONFIGURE_OPTS += -qt-mouse-tslib
+QT_DEPENDENCIES+=tslib
else
-QT_CONFIGURE += -no-mouse-tslib
+QT_CONFIGURE_OPTS += -no-mouse-tslib
endif
ifeq ($(BR2_PACKAGE_QT_MOUSE_QVFB),y)
-QT_CONFIGURE += -qt-mouse-qvfb
+QT_CONFIGURE_OPTS += -qt-mouse-qvfb
else
-QT_CONFIGURE += -no-mouse-qvfb
+QT_CONFIGURE_OPTS += -no-mouse-qvfb
endif
ifeq ($(BR2_PACKAGE_QT_MOUSE_NO_QWS_CURSOR),y)
-QT_CONFIGURE+= -D QT_NO_QWS_CURSOR
+QT_CONFIGURE_OPTS += -D QT_NO_QWS_CURSOR
endif
### Keyboard drivers
ifeq ($(BR2_PACKAGE_QT_KEYBOARD_TTY),y)
-QT_CONFIGURE += -qt-kbd-tty
+QT_CONFIGURE_OPTS += -qt-kbd-tty
else
-QT_CONFIGURE += -no-kbd-tty
+QT_CONFIGURE_OPTS += -no-kbd-tty
endif
ifeq ($(BR2_PACKAGE_QT_KEYBOARD_LINUXINPUT),y)
-QT_CONFIGURE += -qt-kbd-linuxinput
+QT_CONFIGURE_OPTS += -qt-kbd-linuxinput
else
-QT_CONFIGURE += -no-kbd-linuxinput
+QT_CONFIGURE_OPTS += -no-kbd-linuxinput
endif
ifeq ($(BR2_PACKAGE_QT_KEYBOARD_QVFB),y)
-QT_CONFIGURE += -qt-kbd-qvfb
+QT_CONFIGURE_OPTS += -qt-kbd-qvfb
else
-QT_CONFIGURE += -no-kbd-qvfb
+QT_CONFIGURE_OPTS += -no-kbd-qvfb
endif
ifeq ($(BR2_PACKAGE_QT_DEBUG),y)
-QT_CONFIGURE+= -debug
+QT_CONFIGURE_OPTS += -debug
else
-QT_CONFIGURE+= -release
+QT_CONFIGURE_OPTS += -release
endif
ifeq ($(BR2_PACKAGE_QT_SHARED),y)
-QT_CONFIGURE+= -shared
+QT_CONFIGURE_OPTS += -shared
else
-QT_CONFIGURE+= -static
+QT_CONFIGURE_OPTS += -static
endif
ifeq ($(BR2_ENDIAN),"LITTLE")
-QT_CONFIGURE+= -little-endian
+QT_CONFIGURE_OPTS += -little-endian
else
-QT_CONFIGURE+= -big-endian
+QT_CONFIGURE_OPTS += -big-endian
endif
+ifeq ($(BR2_arm),y)
+QT_EMB_PLATFORM = arm
+else ifeq ($(BR2_armeb),y)
+QT_EMB_PLATFORM = arm
+else ifeq ($(BR2_avr32),y)
+QT_EMB_PLATFORM = avr32
+else ifeq ($(BR2_x86),y)
+QT_EMB_PLATFORM = x86
+else ifeq ($(BR2_x86_64),y)
+QT_EMB_PLATFORM = x86_64
+else ifeq ($(BR2_mips),y)
+QT_EMB_PLATFORM = mips
+else ifeq ($(BR2_mipsel),y)
+QT_EMB_PLATFORM = mips
+else ifeq ($(BR2_powerpc),y)
+QT_EMB_PLATFORM = powerpc
+else
+QT_EMB_PLATFORM = generic
+endif
+
+QT_CONFIGURE_OPTS += -embedded $(QT_EMB_PLATFORM)
+
ifneq ($(BR2_PACKAGE_QT_GUI_MODULE),y)
-QT_CONFIGURE+= -no-gui
+QT_CONFIGURE_OPTS += -no-gui
endif
ifeq ($(BR2_PACKAGE_QT_GIF),y)
-QT_CONFIGURE+= -qt-gif
+QT_CONFIGURE_OPTS += -qt-gif
else
-QT_CONFIGURE+= -no-gif
+QT_CONFIGURE_OPTS += -no-gif
endif
ifeq ($(BR2_PACKAGE_QT_LIBMNG),y)
-QT_CONFIGURE+= -qt-libmng
+QT_CONFIGURE_OPTS += -qt-libmng
else
-QT_CONFIGURE+= -no-libmng
+QT_CONFIGURE_OPTS += -no-libmng
endif
ifeq ($(BR2_PACKAGE_QT_QTZLIB),y)
-QT_CONFIGURE+= -qt-zlib
+QT_CONFIGURE_OPTS += -qt-zlib
else
ifeq ($(BR2_PACKAGE_QT_SYSTEMZLIB),y)
-QT_CONFIGURE+= -system-zlib
-QT_DEP_LIBS+=zlib
+QT_CONFIGURE_OPTS += -system-zlib
+QT_DEPENDENCIES += zlib
endif
endif
ifeq ($(BR2_PACKAGE_QT_QTJPEG),y)
-QT_CONFIGURE+= -qt-libjpeg
+QT_CONFIGURE_OPTS += -qt-libjpeg
else
ifeq ($(BR2_PACKAGE_QT_SYSTEMJPEG),y)
-QT_CONFIGURE+= -system-libjpeg
-QT_DEP_LIBS+=jpeg
+QT_CONFIGURE_OPTS += -system-libjpeg
+QT_DEPENDENCIES += jpeg
else
-QT_CONFIGURE+= -no-libjpeg
+QT_CONFIGURE_OPTS += -no-libjpeg
endif
endif
ifeq ($(BR2_PACKAGE_QT_QTPNG),y)
-QT_CONFIGURE+= -qt-libpng
+QT_CONFIGURE_OPTS += -qt-libpng
else
ifeq ($(BR2_PACKAGE_QT_SYSTEMPNG),y)
-QT_CONFIGURE+= -system-libpng
-QT_DEP_LIBS+=libpng
+QT_CONFIGURE_OPTS += -system-libpng
+QT_DEPENDENCIES += libpng
else
-QT_CONFIGURE+= -no-libpng
+QT_CONFIGURE_OPTS += -no-libpng
endif
endif
ifeq ($(BR2_PACKAGE_QT_QTTIFF),y)
-QT_CONFIGURE+= -qt-libtiff
+QT_CONFIGURE_OPTS += -qt-libtiff
else
ifeq ($(BR2_PACKAGE_QT_SYSTEMTIFF),y)
-QT_CONFIGURE+= -system-libtiff
-QT_DEP_LIBS+=tiff
+QT_CONFIGURE_OPTS += -system-libtiff
+QT_DEPENDENCIES += tiff
else
-QT_CONFIGURE+= -no-libtiff
+QT_CONFIGURE_OPTS += -no-libtiff
endif
endif
-
QT_FONTS = $(addprefix $(STAGING_DIR)/usr/lib/fonts/, $(addsuffix *.qpf, \
$(if $(BR2_PACKAGE_QT_FONT_MICRO),micro) \
$(if $(BR2_PACKAGE_QT_FONT_FIXED),fixed) \
@@ -259,272 +272,206 @@ QT_FONTS = $(addprefix $(STAGING_DIR)/usr/lib/fonts/, $(addsuffix *.qpf, \
$(if $(BR2_PACKAGE_QT_FONT_JAPANESE),japanese) \
$(if $(BR2_PACKAGE_QT_FONT_UNIFONT),unifont)))
-
ifeq ($(BR2_PACKAGE_QT_QTFREETYPE),y)
-QT_CONFIGURE+= -qt-freetype
+QT_CONFIGURE_OPTS += -qt-freetype
else
ifeq ($(BR2_PACKAGE_QT_SYSTEMFREETYPE),y)
-QT_CONFIGURE+= -system-freetype
-QT_CONFIGURE+= -I $(STAGING_DIR)/usr/include/freetype2/
-QT_DEP_LIBS+=freetype
+QT_CONFIGURE_OPTS += -system-freetype
+QT_CONFIGURE_OPTS += -I $(STAGING_DIR)/usr/include/freetype2/
+QT_DEPENDENCIES += freetype
else
-QT_CONFIGURE+= -no-freetype
+QT_CONFIGURE_OPTS += -no-freetype
endif
endif
+ifeq ($(BR2_PACKAGE_QT_DBUS),y)
+QT_DEPENDENCIES += dbus
+endif
ifeq ($(BR2_PACKAGE_QT_OPENSSL),y)
-QT_CONFIGURE+= -openssl
-QT_DEP_LIBS+=openssl
+QT_CONFIGURE_OPTS += -openssl
+QT_DEPENDENCIES += openssl
else
-QT_CONFIGURE+= -no-openssl
+QT_CONFIGURE_OPTS += -no-openssl
endif
# Qt SQL Drivers
ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
ifeq ($(BR2_PACKAGE_QT_IBASE),y)
-QT_CONFIGURE+= -qt-sql-ibase
+QT_CONFIGURE_OPTS += -qt-sql-ibase
endif
ifeq ($(BR2_PACKAGE_QT_MYSQL),y)
-QT_CONFIGURE+= -qt-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config
-QT_DEP_LIBS+=mysql_client
+QT_CONFIGURE_OPTS += -qt-sql-mysql -mysql_config $(STAGING_DIR)/usr/bin/mysql_config
+QT_DEPENDENCIES += mysql_client
endif
ifeq ($(BR2_PACKAGE_QT_ODBC),y)
-QT_CONFIGURE+= -qt-sql-odbc
+QT_CONFIGURE_OPTS += -qt-sql-odbc
endif
ifeq ($(BR2_PACKAGE_QT_PSQL),y)
-QT_CONFIGURE+= -qt-sql-psql
+QT_CONFIGURE_OPTS += -qt-sql-psql
endif
ifeq ($(BR2_PACKAGE_QT_SQLITE_QT),y)
-QT_CONFIGURE+= -qt-sql-sqlite
+QT_CONFIGURE_OPTS += -qt-sql-sqlite
else
ifeq ($(BR2_PACKAGE_QT_SQLITE_SYSTEM),y)
-QT_CONFIGURE+= -system-sqlite
-QT_DEP_LIBS+= sqlite
+QT_CONFIGURE_OPTS += -system-sqlite
+QT_DEPENDENCIES += sqlite
else
-QT_CONFIGURE+= -no-sql-sqlite
+QT_CONFIGURE_OPTS += -no-sql-sqlite
endif
endif
ifeq ($(BR2_PACKAGE_QT_SQLITE2),y)
-QT_CONFIGURE+= -qt-sql-sqlite2
+QT_CONFIGURE_OPTS += -qt-sql-sqlite2
endif
else
# By default, no SQL driver is turned on by configure.
-# but it seams sqlite isn't disabled despite what says
+# but it seems sqlite isn't disabled despite what says
# configure --help
-QT_CONFIGURE+= -no-sql-sqlite
+QT_CONFIGURE_OPTS += -no-sql-sqlite
endif
ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y)
-QT_CONFIGURE+= -xmlpatterns -exceptions
+QT_CONFIGURE_OPTS += -xmlpatterns -exceptions
else
-QT_CONFIGURE+= -no-xmlpatterns
+QT_CONFIGURE_OPTS += -no-xmlpatterns
endif
ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y)
-QT_CONFIGURE+= -multimedia
+QT_CONFIGURE_OPTS += -multimedia
else
-QT_CONFIGURE+= -no-multimedia
+QT_CONFIGURE_OPTS += -no-multimedia
endif
ifeq ($(BR2_PACKAGE_QT_AUDIO_BACKEND),y)
-QT_CONFIGURE+= -audio-backend
-QT_DEP_LIBS+=alsa-lib
+QT_CONFIGURE_OPTS += -audio-backend
+QT_DEPENDENCIES += alsa-lib
else
-QT_CONFIGURE+= -no-audio-backend
+QT_CONFIGURE_OPTS += -no-audio-backend
endif
ifeq ($(BR2_PACKAGE_QT_PHONON),y)
-QT_CONFIGURE+= -phonon
-QT_DEP_LIBS+=gstreamer gst-plugins-base
+QT_CONFIGURE_OPTS += -phonon
+QT_DEPENDENCIES += gstreamer gst-plugins-base
else
-QT_CONFIGURE+= -no-phonon
+QT_CONFIGURE_OPTS += -no-phonon
endif
ifeq ($(BR2_PACKAGE_QT_PHONON_BACKEND),y)
-QT_CONFIGURE+= -phonon-backend
+QT_CONFIGURE_OPTS += -phonon-backend
else
-QT_CONFIGURE+= -no-phonon-backend
+QT_CONFIGURE_OPTS += -no-phonon-backend
endif
ifeq ($(BR2_PACKAGE_QT_SVG),y)
-QT_CONFIGURE+= -svg
+QT_CONFIGURE_OPTS += -svg
else
-QT_CONFIGURE+= -no-svg
+QT_CONFIGURE_OPTS += -no-svg
endif
ifeq ($(BR2_PACKAGE_QT_WEBKIT),y)
-QT_CONFIGURE+= -webkit
+QT_CONFIGURE_OPTS += -webkit
else
-QT_CONFIGURE+= -no-webkit
+QT_CONFIGURE_OPTS += -no-webkit
endif
ifeq ($(BR2_PACKAGE_QT_SCRIPT),y)
-QT_CONFIGURE+= -script
+QT_CONFIGURE_OPTS += -script
else
-QT_CONFIGURE+= -no-script
+QT_CONFIGURE_OPTS += -no-script
endif
ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y)
-QT_CONFIGURE+= -scripttools
+QT_CONFIGURE_OPTS += -scripttools
else
-QT_CONFIGURE+= -no-scripttools
+QT_CONFIGURE_OPTS += -no-scripttools
endif
ifeq ($(BR2_PACKAGE_QT_JAVASCRIPTCORE),y)
-QT_CONFIGURE+= -javascript-jit
+QT_CONFIGURE_OPTS += -javascript-jit
else
-QT_CONFIGURE+= -no-javascript-jit
+QT_CONFIGURE_OPTS += -no-javascript-jit
endif
ifeq ($(BR2_PACKAGE_QT_STL),y)
-QT_CONFIGURE+= -stl
+QT_CONFIGURE_OPTS += -stl
else
-QT_CONFIGURE+= -no-stl
+QT_CONFIGURE_OPTS += -no-stl
endif
# ccache and precompiled headers don't play well together
ifeq ($(BR2_CCACHE),y)
-QT_CONFIGURE += -no-pch
+QT_CONFIGURE_OPTS += -no-pch
endif
-BR2_PACKAGE_QT_EMB_PLATFORM:=$(call qstrip,$(BR2_PACKAGE_QT_EMB_PLATFORM))
-
# x86x86fix
# Workaround Qt Embedded bug when crosscompiling for x86 under x86 with linux
# host. It's unclear if this would happen on other hosts.
ifneq ($(findstring linux,$(GNU_HOST_NAME)),)
ifneq ($(findstring x86,$(BR2_PACKAGE_QT_EMB_PLATFORM)),)
-QT_CONFIGURE+= -platform linux-g++
+QT_CONFIGURE_OPTS += -platform linux-g++
endif
endif
# End of workaround.
-# Figure out what libs to install in the target
-QT_LIBS=#empty
-ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y)
-QT_LIBS+= qt-gui
-endif
-ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
-QT_LIBS+= qt-sql
-endif
-ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y)
-QT_LIBS+= qt-multimedia
-endif
-ifeq ($(BR2_PACKAGE_QT_PHONON),y)
-QT_LIBS+= qt-phonon
-endif
-ifeq ($(BR2_PACKAGE_QT_SVG),y)
-QT_LIBS+= qt-svg
-endif
-ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
-QT_LIBS+= qt-network
-endif
-ifeq ($(BR2_PACKAGE_QT_WEBKIT),y)
-QT_LIBS+= qt-webkit
-endif
-ifeq ($(BR2_PACKAGE_QT_XML),y)
-QT_LIBS+= qt-xml
-endif
-ifeq ($(BR2_PACKAGE_QT_DBUS),y)
-QT_LIBS+= qt-dbus
-QT_DEP_LIBS+= dbus
-endif
-ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y)
-QT_LIBS+= qt-xmlpatterns
-endif
-ifeq ($(BR2_PACKAGE_QT_SCRIPT),y)
-QT_LIBS+= qt-script
-endif
-ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y)
-QT_LIBS+= qt-scripttools
-endif
-ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y)
-QT_LIBS+= qt-qt3support
-endif
-
-QT_QMAKE_CONF:=$(QT_TARGET_DIR)/mkspecs/qws/linux-$(BR2_PACKAGE_QT_EMB_PLATFORM)-g++/qmake.conf
-
# Variable for other Qt applications to use
-QT_QMAKE:=$(HOST_DIR)/usr/bin/qmake -spec qws/linux-$(BR2_PACKAGE_QT_EMB_PLATFORM)-g++
+QT_QMAKE:=$(HOST_DIR)/usr/bin/qmake -spec qws/linux-$(QT_EMB_PLATFORM)-g++
################################################################################
# QT_QMAKE_SET -- helper macro to set QMAKE_<variable> = <value> in
-# QT_QMAKE_CONF. Will remove existing variable declaration if available.
+# the qmake.conf file. Will remove existing variable declaration if
+# available.
#
# Argument 1 is the variable name (without QMAKE_)
# Argument 2 is the value to set variable to
+# Argument 3 is the base source directory of Qt
#
# E.G. use like this:
-# $(call QT_QMAKE_SET,variable,value)
+# $(call QT_QMAKE_SET,variable,value,directory)
################################################################################
define QT_QMAKE_SET
- $(SED) '/QMAKE_$(1)/d' $(QT_QMAKE_CONF)
- $(SED) '/include.*qws.conf/aQMAKE_$(1) = $(2)' $(QT_QMAKE_CONF)
+ $(SED) '/QMAKE_$(1)/d' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
+ $(SED) '/include.*qws.conf/aQMAKE_$(1) = $(2)' $(3)/mkspecs/qws/linux-$(QT_EMB_PLATFORM)-g++/qmake.conf
endef
-################################################################################
-# QT_INSTALL_PLUGINS -- helper macro to install Qt plugins to target and
-# strip them
-#
-# Argument 1 is the plugin folder
-#
-# E.G. use like this to install plugins/sqldrivers:
-# $(call QT_INSTALL_PLUGINS,sqldrivers)
-# ################################################################################
-define QT_INSTALL_PLUGINS
- if [ -d $(STAGING_DIR)/usr/plugins/$(1) ]; then \
- mkdir -p $(TARGET_DIR)/usr/plugins; \
- cp -dpfr $(STAGING_DIR)/usr/plugins/$(1) $(TARGET_DIR)/usr/plugins/; \
- $(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/plugins/$(1)/*; \
- fi
+ifneq ($(BR2_INET_IPV6),y)
+define QT_CONFIGURE_IPV6
+ $(SED) 's/^CFG_IPV6=auto/CFG_IPV6=no/' $(@D)/configure
+ $(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(@D)/configure
endef
+endif
-$(DL_DIR)/$(QT_SOURCE):
- $(call DOWNLOAD,$(QT_SITE),$(QT_SOURCE))
-
-qt-source: $(DL_DIR)/$(QT_SOURCE)
-
-
-$(QT_TARGET_DIR)/.unpacked: $(DL_DIR)/$(QT_SOURCE)
- $(QT_CAT) $(DL_DIR)/$(QT_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
- toolchain/patch-kernel.sh $(QT_TARGET_DIR) package/qt/ \
- qt-$(QT_VERSION)-\*.patch \
- qt-$(QT_VERSION)-\*.patch.$(ARCH)
- touch $@
-
-$(QT_TARGET_DIR)/.configured: $(QT_TARGET_DIR)/.unpacked
- -[ -f $(QT_TARGET_DIR)/Makefile ] && $(MAKE) -C $(QT_TARGET_DIR) confclean
-ifneq ($(BR2_INET_IPV6),y)
- $(SED) 's/^CFG_IPV6=auto/CFG_IPV6=no/' $(QT_TARGET_DIR)/configure
- $(SED) 's/^CFG_IPV6IFNAME=auto/CFG_IPV6IFNAME=no/' $(QT_TARGET_DIR)/configure
+ifneq ($(QT_CONFIG_FILE),)
+define QT_CONFIGURE_CONFIG_FILE
+ cp $(QT_CONFIG_FILE) $(@D)/src/corelib/global/qconfig-buildroot.h
+endef
endif
+
+define QT_CONFIGURE_CMDS
+ -[ -f $(@D)/Makefile ] && $(MAKE) -C $(@D) confclean
+ $(QT_CONFIGURE_IPV6)
+ $(QT_CONFIGURE_CONFIG_FILE)
# Fix compiler path
- $(call QT_QMAKE_SET,CC,$(filter-out --sysroot=%,$(TARGET_CC)))
- $(call QT_QMAKE_SET,CXX,$(filter-out --sysroot=%,$(TARGET_CXX)))
- $(call QT_QMAKE_SET,LINK,$(TARGET_CXX))
- $(call QT_QMAKE_SET,LINK_SHLIB,$(TARGET_CXX))
- $(call QT_QMAKE_SET,AR,$(TARGET_AR) cqs)
- $(call QT_QMAKE_SET,OBJCOPY,$(TARGET_OBJCOPY))
- $(call QT_QMAKE_SET,RANLIB,$(TARGET_RANLIB))
- $(call QT_QMAKE_SET,STRIP,$(TARGET_STRIP))
- $(call QT_QMAKE_SET,CFLAGS,$(TARGET_SYSROOT_OPT) $(TARGET_CFLAGS))
- $(call QT_QMAKE_SET,CXXFLAGS,$(TARGET_SYSROOT_OPT) $(TARGET_CXXFLAGS))
- $(call QT_QMAKE_SET,LFLAGS,$(TARGET_LDFLAGS))
- -[ -f $(QT_QCONFIG_FILE) ] && cp $(QT_QCONFIG_FILE) \
- $(QT_TARGET_DIR)/$(QT_QCONFIG_FILE_LOCATION)
+ $(call QT_QMAKE_SET,CC,$(filter-out --sysroot=%,$(TARGET_CC)),$(@D))
+ $(call QT_QMAKE_SET,CXX,$(filter-out --sysroot=%,$(TARGET_CXX)),$(@D))
+ $(call QT_QMAKE_SET,LINK,$(TARGET_CXX),$(@D))
+ $(call QT_QMAKE_SET,LINK_SHLIB,$(TARGET_CXX),$(@D))
+ $(call QT_QMAKE_SET,AR,$(TARGET_AR) cqs,$(@D))
+ $(call QT_QMAKE_SET,OBJCOPY,$(TARGET_OBJCOPY),$(@D))
+ $(call QT_QMAKE_SET,RANLIB,$(TARGET_RANLIB),$(@D))
+ $(call QT_QMAKE_SET,STRIP,$(TARGET_STRIP),$(@D))
+ $(call QT_QMAKE_SET,CFLAGS,$(TARGET_SYSROOT_OPT) $(TARGET_CFLAGS),$(@D))
+ $(call QT_QMAKE_SET,CXXFLAGS,$(TARGET_SYSROOT_OPT) $(TARGET_CXXFLAGS),$(@D))
+ $(call QT_QMAKE_SET,LFLAGS,$(TARGET_LDFLAGS),$(@D))
# Don't use TARGET_CONFIGURE_OPTS here, qmake would be compiled for the target
# instead of the host then. So set PKG_CONFIG* manually.
- (cd $(QT_TARGET_DIR); \
+ (cd $(@D); \
PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
./configure \
$(if $(VERBOSE),-verbose,-silent) \
-force-pkg-config \
- -embedded $(BR2_PACKAGE_QT_EMB_PLATFORM) \
- $(QT_QCONFIG_COMMAND) \
- $(QT_CONFIGURE) \
+ $(QT_CONFIGURE_OPTS) \
-no-gfx-qnx \
-no-kbd-qnx \
-no-mouse-qnx \
@@ -538,133 +485,139 @@ endif
-fast \
-no-rpath \
)
- touch $@
-
-$(QT_TARGET_DIR)/.compiled: $(QT_TARGET_DIR)/.configured
- $(MAKE) -C $(QT_TARGET_DIR)
- touch $@
-
-$(HOST_DIR)/usr/bin/qt.conf:
- mkdir -p $(dir $@)
- echo "[Paths]" > $@
- echo "Prefix=$(HOST_DIR)/usr" >> $@
- echo "Headers=$(STAGING_DIR)/usr/include" >> $@
- echo "Libraries=$(STAGING_DIR)/usr/lib" >> $@
- echo "Data=$(HOST_DIR)/usr" >> $@
- echo "Binaries=$(HOST_DIR)/usr/bin" >> $@
-
-$(STAGING_DIR)/usr/lib/libQtCore.la: $(QT_TARGET_DIR)/.compiled $(HOST_DIR)/usr/bin/qt.conf
- $(MAKE) -C $(QT_TARGET_DIR) install
- # Move host programs and spec files to the host directory. The
- # generated qt.conf file will tell qmake where everything is.
- mv $(addprefix $(STAGING_DIR)/usr/bin/,moc rcc qmake lrelease) $(HOST_DIR)/usr/bin
+endef
+
+define QT_BUILD_CMDS
+ $(MAKE) -C $(@D)
+endef
+
+
+# Build the list of libraries and plugins to install to the target
+
+QT_INSTALL_LIBS += QtCore
+QT_HOST_PROGRAMS += moc rcc qmake lrelease
+
ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y)
- mv $(STAGING_DIR)/usr/bin/uic $(HOST_DIR)/usr/bin
+QT_INSTALL_LIBS += QtGui
+QT_INSTALL_PLUGINS += imageformats
+QT_HOST_PROGRAMS += uic
endif
- mv $(STAGING_DIR)/usr/mkspecs $(HOST_DIR)/usr
-
-qt-gui: $(STAGING_DIR)/usr/lib/libQtCore.la
- mkdir -p $(TARGET_DIR)/usr/lib/fonts
-ifneq ($(QT_FONTS),)
- cp -dpf $(QT_FONTS) $(TARGET_DIR)/usr/lib/fonts
+ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
+QT_INSTALL_LIBS += QtSql
+QT_INSTALL_PLUGINS += sqldrivers
endif
-ifneq ($(BR2_PACKAGE_QT_NOFREETYPE),y)
- cp -dpf $(STAGING_DIR)/usr/lib/fonts/*.ttf $(TARGET_DIR)/usr/lib/fonts
+ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y)
+QT_INSTALL_LIBS += QtMultimedia
endif
- # Install image plugins if they are built
- $(call QT_INSTALL_PLUGINS,imageformats)
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtGui.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_PHONON),y)
+QT_INSTALL_LIBS += phonon
+QT_INSTALL_PLUGINS += phonon_backend
endif
-
-qt-sql: $(STAGING_DIR)/usr/lib/libQtCore.la
- $(call QT_INSTALL_PLUGINS,sqldrivers)
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtSql.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_SVG),y)
+QT_INSTALL_LIBS += QtSvg
+QT_INSTALL_PLUGINS += iconengines
endif
-
-qt-multimedia: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtMultimedia.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
+QT_INSTALL_LIBS += QtNetwork
endif
-
-qt-phonon: $(STAGING_DIR)/usr/lib/libQtCore.la
- $(call QT_INSTALL_PLUGINS,phonon_backend)
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libphonon.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_WEBKIT),y)
+QT_INSTALL_LIBS += QtWebKit
endif
-
-qt-svg: $(STAGING_DIR)/usr/lib/libQtCore.la
- $(call QT_INSTALL_PLUGINS,iconengines)
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtSvg.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_XML),y)
+QT_INSTALL_LIBS += QtXml
endif
-
-qt-network: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtNetwork.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_DBUS),y)
+QT_INSTALL_LIBS += QtDBus
endif
-
-qt-webkit: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtWebKit.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_XMLPATTERNS),y)
+QT_INSTALL_LIBS += QtXmlPatterns
endif
-
-qt-xml: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtXml.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_SCRIPT),y)
+QT_INSTALL_LIBS += QtScript
endif
-
-qt-xmlpatterns: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtXmlPatterns.so.* $(TARGET_DIR)/usr/lib/
+ifeq ($(BR2_PACKAGE_QT_SCRIPTTOOLS),y)
+QT_INSTALL_LIBS += QtScriptTools
endif
+ifeq ($(BR2_PACKAGE_QT_QT3SUPPORT),y)
+QT_INSTALL_LIBS += libQt3Support
+endif
+
+QT_CONF_FILE=$(HOST_DIR)/usr/bin/qt.conf
+
+# Since host programs and spec files have been moved to $(HOST_DIR),
+# we need to tell qmake the new location of the various elements,
+# through a qt.conf file.
+define QT_INSTALL_QT_CONF
+ mkdir -p $(dir $(QT_CONF_FILE))
+ echo "[Paths]" > $(QT_CONF_FILE)
+ echo "Prefix=$(HOST_DIR)/usr" >> $(QT_CONF_FILE)
+ echo "Headers=$(STAGING_DIR)/usr/include" >> $(QT_CONF_FILE)
+ echo "Libraries=$(STAGING_DIR)/usr/lib" >> $(QT_CONF_FILE)
+ echo "Data=$(HOST_DIR)/usr" >> $(QT_CONF_FILE)
+ echo "Binaries=$(HOST_DIR)/usr/bin" >> $(QT_CONF_FILE)
+endef
-qt-dbus: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtDBus.so.* $(TARGET_DIR)/usr/lib/
-endif
+# After running Qt normal installation process (which installs
+# everything in the STAGING_DIR), we move host programs such as qmake,
+# rcc or uic to the HOST_DIR so that they are available at the usual
+# location. A qt.conf file is generated to make sure that all host
+# programs still find all files they need.
+define QT_INSTALL_STAGING_CMDS
+ $(MAKE) -C $(@D) install
+ mkdir -p $(HOST_DIR)/usr/bin
+ mv $(addprefix $(STAGING_DIR)/usr/bin/,$(QT_HOST_PROGRAMS)) $(HOST_DIR)/usr/bin
+ rm -rf $(HOST_DIR)/usr/mkspecs
+ mv $(STAGING_DIR)/usr/mkspecs $(HOST_DIR)/usr
+ $(QT_INSTALL_QT_CONF)
+endef
-qt-script: $(STAGING_DIR)/usr/lib/libQtCore.la
+# Library installation
ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtScript.so.* $(TARGET_DIR)/usr/lib/
+define QT_INSTALL_TARGET_LIBS
+ for lib in $(QT_INSTALL_LIBS); do \
+ cp -dpf $(STAGING_DIR)/usr/lib/lib$${lib}.so.* $(TARGET_DIR)/usr/lib ; \
+ done
+endef
endif
-qt-scripttools: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtScriptTools.so.* $(TARGET_DIR)/usr/lib/
-endif
+# Plugin installation
+define QT_INSTALL_TARGET_PLUGINS
+ for plugin in $(QT_INSTALL_PLUGINS); do \
+ mkdir -p $(TARGET_DIR)/usr/plugins ; \
+ cp -dpfr $(STAGING_DIR)/usr/plugins/$$plugin $(TARGET_DIR)/usr/plugins/; \
+ done
+endef
-qt-qt3support: $(STAGING_DIR)/usr/lib/libQtCore.la
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQt3Support.so.* $(TARGET_DIR)/usr/lib/
+# Fonts installation
+ifneq ($(QT_FONTS),)
+define QT_INSTALL_TARGET_FONTS
+ mkdir -p $(TARGET_DIR)/usr/lib/fonts
+ cp -dpf $(QT_FONTS) $(TARGET_DIR)/usr/lib/fonts
+endef
endif
-$(TARGET_DIR)/usr/lib/libQtCore.so.4: $(STAGING_DIR)/usr/lib/libQtCore.la $(QT_LIBS)
- # Strip all installed libs
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
- cp -dpf $(STAGING_DIR)/usr/lib/libQtCore.so.* $(TARGET_DIR)/usr/lib/
- -$(STRIPCMD) $(STRIP_STRIP_UNNEEDED) $(TARGET_DIR)/usr/lib/libQt*.so.*
+ifeq ($(BR2_PACKAGE_QT_QTFREETYPE)$(BR2_PACKAGE_QT_SYSTEMFREETYPE),y)
+define QT_INSTALL_TARGET_FONTS_TTF
+ mkdir -p $(TARGET_DIR)/usr/lib/fonts
+ cp -dpf $(STAGING_DIR)/usr/lib/fonts/*.ttf $(TARGET_DIR)/usr/lib/fonts
+endef
endif
-qt: $(QT_DEP_LIBS) $(TARGET_DIR)/usr/lib/libQtCore.so.4
+define QT_INSTALL_TARGET_CMDS
+ $(QT_INSTALL_TARGET_LIBS)
+ $(QT_INSTALL_TARGET_PLUGINS)
+ $(QT_INSTALL_TARGET_FONTS)
+ $(QT_INSTALL_TARGET_FONTS_TTF)
+endef
+
+define QT_CLEAN_CMDS
+ -$(MAKE) -C $(@D) clean
+endef
-qt-clean:
- -$(MAKE) -C $(QT_TARGET_DIR) clean
+define QT_UNINSTALL_TARGET_CMDS
-rm -rf $(TARGET_DIR)/usr/lib/fonts
-ifeq ($(BR2_PACKAGE_QT_SHARED),y)
-rm $(TARGET_DIR)/usr/lib/libQt*.so.*
-rm $(TARGET_DIR)/usr/lib/libphonon.so.*
-endif
-
-qt-dirclean:
- rm -rf $(QT_TARGET_DIR)
+endef
-#############################################################
-#
-# Toplevel Makefile options
-#
-#############################################################
-ifeq ($(BR2_PACKAGE_QT),y)
-TARGETS+=qt
-endif
+$(eval $(call GENTARGETS,package,qt))
--
1.7.0.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure
2011-03-20 14:19 ` [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure Thomas Petazzoni
@ 2011-03-24 20:57 ` Luca Ceresoli
2011-03-25 16:37 ` Will Wagner
2011-03-27 22:06 ` Peter Korsgaard
2 siblings, 0 replies; 6+ messages in thread
From: Luca Ceresoli @ 2011-03-24 20:57 UTC (permalink / raw)
To: buildroot
Thomas Petazzoni wrote:
> 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.
>
> Signed-off-by: Thomas Petazzoni<thomas.petazzoni@free-electrons.com>
> ---
> package/qt/Config.in | 35 ++--
> package/qt/qt.mk | 623 +++++++++++++++++++++++---------------------------
> 2 files changed, 302 insertions(+), 356 deletions(-)
>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Luca
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure
2011-03-20 14:19 ` [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure Thomas Petazzoni
2011-03-24 20:57 ` Luca Ceresoli
@ 2011-03-25 16:37 ` Will Wagner
2011-03-27 22:07 ` Peter Korsgaard
2011-03-27 22:06 ` Peter Korsgaard
2 siblings, 1 reply; 6+ messages in thread
From: Will Wagner @ 2011-03-25 16:37 UTC (permalink / raw)
To: buildroot
On 20/03/2011 14:19, Thomas Petazzoni wrote:
> 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.
>
> Signed-off-by: Thomas Petazzoni<thomas.petazzoni@free-electrons.com>
> ---
> package/qt/Config.in | 35 ++--
> package/qt/qt.mk | 623 +++++++++++++++++++++++---------------------------
> 2 files changed, 302 insertions(+), 356 deletions(-)
>
I have found three issues with this patch:
Should be:
+else ifeq ($(BR2_i386),y)
Not
+else ifeq ($(BR2_x86),y)
Should be:
ifneq ($(findstring x86,$(QT_EMB_PLATFORM)),)
Not
ifneq ($(findstring x86,$(BR2_PACKAGE_QT_EMB_PLATFORM)),)
Finally whitespace formatting is slightly inconsistent for the
QT_DEPENDENCIES libglib2, directfb and tslib
Assuming you fixup those three minor things
Acked-by: Will Wagner <willw@carallon.com>
As a slight aside I have a number of Qt patches in my tree that I'd love
to get merged if there was any interest.
First is to allow compiling Qt for X11 rather than embedded. This is
involves a slight hack as Qt doesn't officially support cross compiling
the X11 version, however I have it working well and have been in touch
with Nokia support who say that although not officially supported it
should work
Second is re-adding commercial support. i know we had this before and it
was removed, however I'm stuck with some projects that have to use the
commercial license. I have done it slightly differently to how it was
before, it no longer needs login details to download the tarball,
instead it just fails with an explanation if it isn't in your buildroot
dl folder.
Other patches include Qt Declarative config option, more font config
options.
If people are interested I'll submit patches.
Will
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure
2011-03-20 14:19 ` [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure Thomas Petazzoni
2011-03-24 20:57 ` Luca Ceresoli
2011-03-25 16:37 ` Will Wagner
@ 2011-03-27 22:06 ` Peter Korsgaard
2 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2011-03-27 22:06 UTC (permalink / raw)
To: buildroot
>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:
Thomas> In addition to converting the qt package to the GENTARGETS
Thomas> infrastructure, this commit also does the following (related) things
Thomas> in the Qt package:
Committed, thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure
2011-03-25 16:37 ` Will Wagner
@ 2011-03-27 22:07 ` Peter Korsgaard
0 siblings, 0 replies; 6+ messages in thread
From: Peter Korsgaard @ 2011-03-27 22:07 UTC (permalink / raw)
To: buildroot
>>>>> "Will" == Will Wagner <will_wagner@carallon.com> writes:
Hi,
Will> I have found three issues with this patch:
Will> Should be:
Will> +else ifeq ($(BR2_i386),y)
Will> Not
Will> +else ifeq ($(BR2_x86),y)
Will> Should be:
Will> ifneq ($(findstring x86,$(QT_EMB_PLATFORM)),)
Will> Not
Will> ifneq ($(findstring x86,$(BR2_PACKAGE_QT_EMB_PLATFORM)),)
Will> Finally whitespace formatting is slightly inconsistent for the
Will> QT_DEPENDENCIES libglib2, directfb and tslib
Will> Assuming you fixup those three minor things
Will> Acked-by: Will Wagner <willw@carallon.com>
Fixed, thanks.
Will> As a slight aside I have a number of Qt patches in my tree that I'd
Will> love to get merged if there was any interest.
Will> First is to allow compiling Qt for X11 rather than embedded. This is
Will> involves a slight hack as Qt doesn't officially support cross
Will> compiling the X11 version, however I have it working well and have
Will> been in touch with Nokia support who say that although not officially
Will> supported it should work
Will> Second is re-adding commercial support. i know we had this before and
Will> it was removed, however I'm stuck with some projects that have to use
Will> the commercial license. I have done it slightly differently to how it
Will> was before, it no longer needs login details to download the tarball,
Will> instead it just fails with an explanation if it isn't in your
Will> buildroot dl folder.
Will> Other patches include Qt Declarative config option, more font config
Will> options.
Will> If people are interested I'll submit patches.
I am, please submit - I'll add them If they are not too intrusive.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-03-27 22:07 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-03-20 14:19 [Buildroot] [pull request] Pull request for branch for-2011.05/qt-migration Thomas Petazzoni
2011-03-20 14:19 ` [Buildroot] [PATCH 1/1] qt: convert to the GENTARGETS infrastructure Thomas Petazzoni
2011-03-24 20:57 ` Luca Ceresoli
2011-03-25 16:37 ` Will Wagner
2011-03-27 22:07 ` Peter Korsgaard
2011-03-27 22:06 ` Peter Korsgaard
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox