ソースを参照

qt: move host programs and specs in HOST_DIR

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>
Thomas Petazzoni 14 年 前
コミット
ca290e7e28
1 ファイル変更17 行追加1 行削除
  1. 17 1
      package/qt/qt.mk

+ 17 - 1
package/qt/qt.mk

@@ -536,8 +536,24 @@ $(QT_TARGET_DIR)/.compiled: $(QT_TARGET_DIR)/.configured
 	$(MAKE) -C $(QT_TARGET_DIR)
 	$(MAKE) -C $(QT_TARGET_DIR)
 	touch $@
 	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
 	$(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
 qt-gui: $(STAGING_DIR)/usr/lib/libQtCore.la
 	mkdir -p $(TARGET_DIR)/usr/lib/fonts
 	mkdir -p $(TARGET_DIR)/usr/lib/fonts