summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons/Tool/qt.py
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2004-10-08 01:44:16 (GMT)
committerSteven Knight <knight@baldmt.com>2004-10-08 01:44:16 (GMT)
commit364d71a38b3049074979b0c8252f6ccf7cdcc377 (patch)
treeb964cdae7b906d6165571493c8ec5059d316db34 /src/engine/SCons/Tool/qt.py
parent32d1fece4327068b1f6c83cc80f1353e92208533 (diff)
downloadSCons-364d71a38b3049074979b0c8252f6ccf7cdcc377.zip
SCons-364d71a38b3049074979b0c8252f6ccf7cdcc377.tar.gz
SCons-364d71a38b3049074979b0c8252f6ccf7cdcc377.tar.bz2
Have the Qt Builder make uic-built files dependent on the .ui.h file, if it exists. (Christoph Wiedemann)
Diffstat (limited to 'src/engine/SCons/Tool/qt.py')
-rw-r--r--src/engine/SCons/Tool/qt.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/engine/SCons/Tool/qt.py b/src/engine/SCons/Tool/qt.py
index c6237d3..9bb0438 100644
--- a/src/engine/SCons/Tool/qt.py
+++ b/src/engine/SCons/Tool/qt.py
@@ -38,6 +38,7 @@ import os.path
import re
import SCons.Defaults
+import SCons.Scanner
import SCons.Tool
import SCons.Util
@@ -218,6 +219,27 @@ def uicEmitter(target, source, env):
env.subst('$QT_MOCHSUFFIX')))
return target, source
+def uicScannerFunc(node, env, path):
+ #print "uicScannerFunc"
+ dir = node.dir
+ includes = re.findall("<include.*?>(.*?)</include>", node.get_contents())
+ res = []
+ for incFile in includes:
+ incNode = dir.File(incFile)
+ if incNode.rexists():
+ #print "uicdep: ", incNode
+ res.append(dir.File(incFile))
+ else:
+ #print "uicdep: ", incNode, "not found"
+ pass
+ return res
+
+uicScanner = SCons.Scanner.Scanner(uicScannerFunc,
+ name = "UicScanner",
+ node_class = SCons.Node.FS.File,
+ node_factory = SCons.Node.FS.File,
+ recursive = 0)
+
def generate(env):
"""Add Builders and construction variables for qt to an Environment."""
CLVar = SCons.Util.CLVar
@@ -276,7 +298,8 @@ def generate(env):
emitter=uicEmitter,
src_suffix='$QT_UISUFFIX',
suffix='$QT_UICDECLSUFFIX',
- prefix='$QT_UICDECLPREFIX')
+ prefix='$QT_UICDECLPREFIX',
+ source_scanner=uicScanner)
mocBld = Builder(action={}, prefix={}, suffix={})
for h in header_extensions:
mocBld.add_action(h, '$QT_MOCFROMHCOM')