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.
This commit is contained in:
Marius Storm-Olsen 2010-11-24 19:56:41 -06:00 committed by axis
parent 81f7b862d6
commit 94e8d3b686

View File

@ -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)
}