qt: move host programs and specs in HOST_DIR
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Mon, 7 Feb 2011 17:18:00 +0000 (18:18 +0100)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 7 Feb 2011 17:22:25 +0000 (18:22 +0100)
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>
package/qt/qt.mk

index 6eb31bccb2b49d03ebcfaf8af808b16c49734140..3857087dca8b6825285854fe90b359c1e9b2f96a 100644 (file)
@@ -536,8 +536,24 @@ $(QT_TARGET_DIR)/.compiled: $(QT_TARGET_DIR)/.configured
        $(MAKE) -C $(QT_TARGET_DIR)
        touch $@
 
-$(STAGING_DIR)/usr/lib/libQtCore.la: $(QT_TARGET_DIR)/.compiled
+$(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
+ifeq ($(BR2_PACKAGE_QT_GUI_MODULE),y)
+       mv $(STAGING_DIR)/usr/bin/uic $(HOST_DIR)/usr/bin
+endif
+       mv $(STAGING_DIR)/usr/mkspecs $(HOST_DIR)/usr
 
 qt-gui: $(STAGING_DIR)/usr/lib/libQtCore.la
        mkdir -p $(TARGET_DIR)/usr/lib/fonts