Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes
@ 2011-04-02 16:52 Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2011-04-02 16:52 UTC (permalink / raw)
  To: buildroot

The following changes since commit 0a70aa0cc5d0980e72677869d9d87e0e4e35e483:

  webkit: bump to version 1.2.7 (2011-03-31 15:23:13 +0200)

are available in the git repository at:
  git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.05/more-qt-fixes

Thomas Petazzoni (2):
      qt: fix plugin installation and change plugin path
      qt: speed up qmake build

 package/qt/qt-4.7.2-configure.patch |   48 +++++++++++++++++++++++++++++++++++
 package/qt/qt.mk                    |   15 +++-------
 2 files changed, 53 insertions(+), 10 deletions(-)
 create mode 100644 package/qt/qt-4.7.2-configure.patch

Thanks,
-- 
Thomas Petazzoni

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes
@ 2011-04-03 15:18 Thomas Petazzoni
  2011-04-03 15:19 ` [Buildroot] [PATCH 1/2] qt: fix plugin installation and change plugin path Thomas Petazzoni
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2011-04-03 15:18 UTC (permalink / raw)
  To: buildroot

Hello,

Changes since the previous version:

 * Pass MAKEFLAGS down to Qt ./configure script, in addition to the
   -j$(BR2_JLEVEL) flag.

 * Test if the usr/lib/qt/plugins exists in STAGING_DIR before copying
   its contents to the TARGET_DIR. It is a bit pedantic as the current
   version of Qt, with just QtCore and no other libraries or plugins
   installs one plugin, but it may not be the case in future versions
   of Qt.

The following changes since commit 4bc1041db6ce805a8d96f653e50ce06eb6849d4b:

  lighttpd: fix build without webdav support (2011-04-02 10:24:59 +0200)

are available in the git repository at:
  git://git.busybox.net/~tpetazzoni/git/buildroot for-2011.05/more-qt-fixes

Thomas Petazzoni (2):
      qt: fix plugin installation and change plugin path
      qt: speed up qmake build

 package/qt/qt-4.7.2-configure.patch |   48 +++++++++++++++++++++++++++++++++++
 package/qt/qt.mk                    |   17 +++++-------
 2 files changed, 55 insertions(+), 10 deletions(-)
 create mode 100644 package/qt/qt-4.7.2-configure.patch

Thanks,
-- 
Thomas Petazzoni

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 1/2] qt: fix plugin installation and change plugin path
  2011-04-03 15:18 [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Thomas Petazzoni
@ 2011-04-03 15:19 ` Thomas Petazzoni
  2011-04-03 15:19 ` [Buildroot] [PATCH 2/2] qt: speed up qmake build Thomas Petazzoni
  2011-04-03 18:55 ` [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Peter Korsgaard
  2 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2011-04-03 15:19 UTC (permalink / raw)
  To: buildroot

Since the conversion of Qt to GENTARGETS in
421cda1fd078f5fa7902f05bd1d2021fd101d9ea, 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>
---
 package/qt/qt-4.7.2-configure.patch |   48 +++++++++++++++++++++++++++++++++++
 package/qt/qt.mk                    |   15 ++++------
 2 files changed, 54 insertions(+), 9 deletions(-)
 create mode 100644 package/qt/qt-4.7.2-configure.patch

diff --git a/package/qt/qt-4.7.2-configure.patch b/package/qt/qt-4.7.2-configure.patch
new file mode 100644
index 0000000..cef53e3
--- /dev/null
+++ b/package/qt/qt-4.7.2-configure.patch
@@ -0,0 +1,48 @@
+Fix -hostprefix behaviour
+
+When -hostprefix ./configure option is used, Qt installs all its
+headers, libraries and binaries inside the given host prefix, instead
+of the prefix. This is used by Buildroot to make sure that all Qt
+libraries and headers are installed in $(STAGING_DIR).
+
+Qt ./configure script also allows to tune the installation location of
+various elements, for examples the plugins through the -plugindir
+option. Unfortunately, this option only impact the installation path
+on the target, but not on the host when -hostprefix is used.
+
+This patch modifies Qt ./configure script so that HOST_*PATH_STR
+variables are composed of the host prefix concatenated with the path
+of installation on the target. This way, the plugin installation local
+in the $(STAGING_DIR) and on the target remains the same.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+
+Index: qt-4.7.2/configure
+===================================================================
+--- qt-4.7.2.orig/configure	2011-03-31 22:28:16.530647168 +0200
++++ qt-4.7.2/configure	2011-03-31 22:29:38.908081695 +0200
+@@ -4456,15 +4456,15 @@
+
+
+ if [ ! -z "$QT_HOST_PREFIX" ]; then
+-    HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
+-    HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
+-    HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
+-    HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
+-    HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
+-    HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
+-    HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/IMPORTS"`
+-    HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
+-    HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
++    HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX/$QT_INSTALL_PREFIX"`
++    HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/$QT_INSTALL_DOCS"`
++    HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/$QT_INSTALL_HEADERS"`
++    HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/$QT_INSTALL_LIBS"`
++    HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/$QT_INSTALL_BINS"`
++    HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/$QT_INSTALL_PLUGINS"`
++    HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/$QT_INSTALL_IMPORTS"`
++    HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX/$QT_INSTALL_DATA"`
++    HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/$QT_INSTALL_TRANSLATIONS"`
+     HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
+     HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
+     HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
diff --git a/package/qt/qt.mk b/package/qt/qt.mk
index bdc32d9..32dc574 100644
--- a/package/qt/qt.mk
+++ b/package/qt/qt.mk
@@ -481,7 +481,8 @@ define QT_CONFIGURE_CMDS
 		-no-accessibility \
 		-no-separate-debug-info \
 		-prefix /usr \
-		-hostprefix $(STAGING_DIR)/usr \
+		-plugindir /usr/lib/qt/plugins \
+		-hostprefix $(STAGING_DIR) \
 		-fast \
 		-no-rpath \
 	)
@@ -499,23 +500,19 @@ QT_HOST_PROGRAMS   += moc rcc qmake lrelease
 
 ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y)
 QT_INSTALL_LIBS    += QtGui
-QT_INSTALL_PLUGINS += imageformats
 QT_HOST_PROGRAMS   += uic
 endif
 ifeq ($(BR2_PACKAGE_QT_SQL_MODULE),y)
 QT_INSTALL_LIBS    += QtSql
-QT_INSTALL_PLUGINS += sqldrivers
 endif
 ifeq ($(BR2_PACKAGE_QT_MULTIMEDIA),y)
 QT_INSTALL_LIBS    += QtMultimedia
 endif
 ifeq ($(BR2_PACKAGE_QT_PHONON),y)
 QT_INSTALL_LIBS    += phonon
-QT_INSTALL_PLUGINS += phonon_backend
 endif
 ifeq ($(BR2_PACKAGE_QT_SVG),y)
 QT_INSTALL_LIBS    += QtSvg
-QT_INSTALL_PLUGINS += iconengines
 endif
 ifeq ($(BR2_PACKAGE_QT_NETWORK),y)
 QT_INSTALL_LIBS    += QtNetwork
@@ -582,10 +579,10 @@ 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
+	if [ -d $(STAGING_DIR)/usr/lib/qt/plugins/ ] ; then \
+		mkdir -p $(TARGET_DIR)/usr/lib/qt/plugins ; \
+		cp -dpfr $(STAGING_DIR)/usr/lib/qt/plugins/* $(TARGET_DIR)/usr/lib/qt/plugins ; \
+	fi
 endef
 
 # Fonts installation
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH 2/2] qt: speed up qmake build
  2011-04-03 15:18 [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Thomas Petazzoni
  2011-04-03 15:19 ` [Buildroot] [PATCH 1/2] qt: fix plugin installation and change plugin path Thomas Petazzoni
@ 2011-04-03 15:19 ` Thomas Petazzoni
  2011-04-03 18:55 ` [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Peter Korsgaard
  2 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2011-04-03 15:19 UTC (permalink / raw)
  To: buildroot

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>
---
 package/qt/qt.mk |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/package/qt/qt.mk b/package/qt/qt.mk
index 32dc574..8d7238e 100644
--- a/package/qt/qt.mk
+++ b/package/qt/qt.mk
@@ -468,7 +468,7 @@ define QT_CONFIGURE_CMDS
 		PKG_CONFIG_SYSROOT_DIR="$(STAGING_DIR)" \
 		PKG_CONFIG="$(PKG_CONFIG_HOST_BINARY)" \
 		PKG_CONFIG_PATH="$(STAGING_DIR)/usr/lib/pkgconfig:$(PKG_CONFIG_PATH)" \
-		./configure \
+		MAKEFLAGS="$(MAKEFLAGS) -j$(BR2_JLEVEL)" ./configure \
 		$(if $(VERBOSE),-verbose,-silent) \
 		-force-pkg-config \
 		$(QT_CONFIGURE_OPTS) \
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes
  2011-04-03 15:18 [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Thomas Petazzoni
  2011-04-03 15:19 ` [Buildroot] [PATCH 1/2] qt: fix plugin installation and change plugin path Thomas Petazzoni
  2011-04-03 15:19 ` [Buildroot] [PATCH 2/2] qt: speed up qmake build Thomas Petazzoni
@ 2011-04-03 18:55 ` Peter Korsgaard
  2 siblings, 0 replies; 5+ messages in thread
From: Peter Korsgaard @ 2011-04-03 18:55 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> Hello,
 Thomas> Changes since the previous version:

 Thomas>  * Pass MAKEFLAGS down to Qt ./configure script, in addition to the
 Thomas>    -j$(BR2_JLEVEL) flag.

 Thomas>  * Test if the usr/lib/qt/plugins exists in STAGING_DIR before copying
 Thomas>    its contents to the TARGET_DIR. It is a bit pedantic as the current
 Thomas>    version of Qt, with just QtCore and no other libraries or plugins
 Thomas>    installs one plugin, but it may not be the case in future versions
 Thomas>    of Qt.

Committed, thanks!

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2011-04-03 18:55 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-03 15:18 [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Thomas Petazzoni
2011-04-03 15:19 ` [Buildroot] [PATCH 1/2] qt: fix plugin installation and change plugin path Thomas Petazzoni
2011-04-03 15:19 ` [Buildroot] [PATCH 2/2] qt: speed up qmake build Thomas Petazzoni
2011-04-03 18:55 ` [Buildroot] [pull request] Pull request for branch for-2011.05/more-qt-fixes Peter Korsgaard
  -- strict thread matches above, loose matches on Subject: below --
2011-04-02 16:52 Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox