summaryrefslogtreecommitdiffstats
path: root/src
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)
commit2756c1846e7bb7630cb65a7fe4912f7af8cd3a29 (patch)
treeb964cdae7b906d6165571493c8ec5059d316db34 /src
parenteb00b2950b7071c06bcb7a558d73b3898b6a5dbb (diff)
downloadSCons-2756c1846e7bb7630cb65a7fe4912f7af8cd3a29.zip
SCons-2756c1846e7bb7630cb65a7fe4912f7af8cd3a29.tar.gz
SCons-2756c1846e7bb7630cb65a7fe4912f7af8cd3a29.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')
-rw-r--r--src/CHANGES.txt3
-rw-r--r--src/engine/SCons/Tool/qt.py25
2 files changed, 27 insertions, 1 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 1a97d15..80c14d1 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -242,6 +242,9 @@ RELEASE 0.97 - XXX
- Additional significant internal cleanups in the Configure() subsystem
and its tests.
+ - Have the Qt Builder make uic-generated files dependent on the .ui.h
+ file, if one exists.
+
RELEASE 0.96.1 - XXX
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')