From a44c1ae9d3a6e519d62d4e8b8bdad23d7874d13c Mon Sep 17 00:00:00 2001 From: Marius Storm-Olsen Date: Wed, 24 Nov 2010 19:56:41 -0600 Subject: [PATCH] Have qmake run syncqt automatically, if sync.profile is detected This will normally only happen for top-level pro files, and syncqt is smart enough to not touch already existing files. And in edition, syncqt uses the original file's timestamp on the fwding files. --- qtbase/mkspecs/features/default_pre.prf | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) diff --git a/qtbase/mkspecs/features/default_pre.prf b/qtbase/mkspecs/features/default_pre.prf index 2e82f03..b8779c8 100644 --- a/qtbase/mkspecs/features/default_pre.prf +++ b/qtbase/mkspecs/features/default_pre.prf @@ -1,3 +1,31 @@ load(exclusive_builds) ### Qt 5: remove "uic" and "resources" - or add "qt" CONFIG = lex yacc warn_on debug uic resources $$CONFIG + +exists($$_PRO_FILE_PWD_/sync.profile) { + PRO_BASENAME = $$basename(_PRO_FILE_) + + # Try to detect proper QTDIR path. We require QTDIR, as syncqt uses that to create qt_module.pri + # forwarding files. If we don't find QTDIR, we avoid creating the fwd files, since you then need + # to do a 'make install;' before you can use the module + # (ie. we don't use QT_INSTALL_DATA for fwd includes. This path needs a full copy) + isEmpty(QTDIR) { + QTDIR = $$(QTDIR) + isEmpty(QTDIR):QTDIR = $$QT_BUILD_TREE + isEmpty(QTDIR):QTDIR = $$dirname(_QMAKE_CACHE_) + isEmpty(QTDIR) { + QMAKE_BASED_QTDIR = $$dirname(QMAKE_QMAKE) + QMAKE_BASED_QTDIR = $$dirname(QMAKE_BASED_QTDIR) + exists($$QMAKE_BASED_QTDIR/mkspecs/qconfig.pri): QTDIR = $$QMAKE_BASED_QTDIR + unset(QMAKE_BASED_QTDIR) + } + } + + isEmpty(QTDIR):QTFWD="-no-module-fwd" + else:QTFWD="-qtdir $$QTDIR" + + message("Running syncqt for $$PRO_BASENAME in $$OUT_PWD") + system("$$QTDIR/bin/syncqt $$QTFWD -outdir $$OUT_PWD $$_PRO_FILE_PWD_") + unset(QTFWD) + unset(PRO_BASENAME) +} -- 1.7.3.4