diff options
author | Tobias Markmann <tm@ayena.de> | 2015-06-15 22:06:31 (GMT) |
---|---|---|
committer | Kevin Smith <kevin.smith@isode.com> | 2015-06-18 09:48:39 (GMT) |
commit | c565fb97c2925b66f81e05ffb6a394d3d53173a0 (patch) | |
tree | 87348cf4e53360465920bc0d07419e3a46bb5c63 | |
parent | 823d751ca2ca5c7b36ce674f20c57f7a5196d992 (diff) | |
download | swift-c565fb97c2925b66f81e05ffb6a394d3d53173a0.zip swift-c565fb97c2925b66f81e05ffb6a394d3d53173a0.tar.bz2 |
Have SCons qt4 tool check for real moc or qtchooser
Some platforms, e.g. KUbuntu, provide a wrapper around Qt's commands
that allow easy switching between different Qt versions. With this
change SCons will execute the found moc tool and check whether it works
or not.
Test-Information:
Tested with correctly installed Qt and uninstalled Qt on KUbuntu 14.04.
Change-Id: I88f0a36af462e909829c30115aa5481abdcd3ac6
-rw-r--r-- | BuildTools/SCons/Tools/qt4.py | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/BuildTools/SCons/Tools/qt4.py b/BuildTools/SCons/Tools/qt4.py index afa61de..625f807 100644 --- a/BuildTools/SCons/Tools/qt4.py +++ b/BuildTools/SCons/Tools/qt4.py @@ -36,6 +36,7 @@ __revision__ = "/home/scons/scons/branch.0/branch.96/baseline/src/engine/SCons/T import os.path import re +import subprocess import SCons.Action import SCons.Builder @@ -207,14 +208,18 @@ def _detect(env): else : moc = env.WhereIs('moc-qt4') or env.WhereIs('moc4') or env.WhereIs('moc') if moc: - import sys - if sys.platform == "darwin" : - return "" - QTDIR = os.path.dirname(os.path.dirname(moc)) - SCons.Warnings.warn( - QtdirNotFound, - "QTDIR variable is not defined, using moc executable as a hint (QTDIR=%s)" % QTDIR) - return QTDIR + # Test whether the moc command we found is real, or whether it is just the qtchooser dummy. + p = subprocess.Popen([moc, "-v"], shell=True, stdin=PIPE, stdout=PIPE, stderr=PIPE) + p.communicate() + if p.returncode == 0: + import sys + if sys.platform == "darwin" : + return "" + QTDIR = os.path.dirname(os.path.dirname(moc)) + SCons.Warnings.warn( + QtdirNotFound, + "QTDIR variable is not defined, using moc executable as a hint (QTDIR=%s)" % QTDIR) + return QTDIR raise SCons.Errors.StopError( QtdirNotFound, |