From aa457d3b240bd4f6049191988eee8a5b160f0439 Mon Sep 17 00:00:00 2001 From: Thomas Petazzoni Date: Wed, 25 Jul 2012 00:05:44 +0200 Subject: [PATCH] qt: tune .pc files after installation in staging directory The Qt configuration and installation process is a bit strange, and it leads the .pc files to contain absolute paths to the staging directory, while it should only contains paths relative to the staging directory, because pkg-config already adds the path of the sysroot automatically to the headers and libraries locations. This allows the 'pkg-config --cflags' results for Qt libraries to be correct. Signed-off-by: Thomas Petazzoni --- package/qt/qt.mk | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/package/qt/qt.mk b/package/qt/qt.mk index feb0d6f3eb..3b40ea460f 100644 --- a/package/qt/qt.mk +++ b/package/qt/qt.mk @@ -577,13 +577,20 @@ endef # 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. +# programs still find all files they need. The .pc files are tuned to +# remove the sysroot path from them, since pkg-config already adds it +# automatically. 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 ln -sf $(STAGING_DIR)/usr/mkspecs $(HOST_DIR)/usr/mkspecs $(QT_INSTALL_QT_CONF) + for i in moc uic rcc lupdate lrelease ; do \ + $(SED) "s,^$${i}_location=.*,$${i}_location=$(HOST_DIR)/usr/bin/$${i}," \ + $(STAGING_DIR)/usr/lib/pkgconfig/Qt*.pc ; \ + done + $(SED) "s,$(STAGING_DIR)/,,g" $(STAGING_DIR)/usr/lib/pkgconfig/Qt*.pc endef # Library installation -- 2.30.2