diff options
author | Steven Knight <knight@baldmt.com> | 2004-10-08 01:44:16 (GMT) |
---|---|---|
committer | Steven Knight <knight@baldmt.com> | 2004-10-08 01:44:16 (GMT) |
commit | 2756c1846e7bb7630cb65a7fe4912f7af8cd3a29 (patch) | |
tree | b964cdae7b906d6165571493c8ec5059d316db34 /src | |
parent | eb00b2950b7071c06bcb7a558d73b3898b6a5dbb (diff) | |
download | SCons-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.txt | 3 | ||||
-rw-r--r-- | src/engine/SCons/Tool/qt.py | 25 |
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') |