summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--buildtools/wafsamba/samba_pidl.py10
1 files changed, 7 insertions, 3 deletions
diff --git a/buildtools/wafsamba/samba_pidl.py b/buildtools/wafsamba/samba_pidl.py
index d6077c2a4a..b7839bc0ca 100644
--- a/buildtools/wafsamba/samba_pidl.py
+++ b/buildtools/wafsamba/samba_pidl.py
@@ -46,9 +46,10 @@ def SAMBA_PIDL(bld, pname, source,
# depend on the full pidl sources
source = TO_LIST(source)
- pidl_src = [x.relpath_gen(bld.path) for x in
- bld.srcnode.ant_glob('pidl/**/*', flat=False)]
- source.extend(pidl_src)
+ try:
+ pidl_src_nodes = bld.pidl_files_cache
+ except AttributeError:
+ pidl_src_nodes = bld.pidl_files_cache = bld.srcnode.ant_glob('pidl/**/*', flat=False)
# the cd .. is needed because pidl currently is sensitive to the directory it is run in
t = bld(rule='cd .. && ${PIDL} ${OPTIONS} --outputdir ${OUTPUTDIR} -- ${SRC[0].abspath(env)}',
@@ -59,6 +60,9 @@ def SAMBA_PIDL(bld, pname, source,
target = out_files,
name = name)
+ # prime the list of nodes we are dependent on with the cached pidl sources
+ t.allnodes = pidl_src_nodes
+
t.env.PIDL = "../pidl/pidl"
t.env.OPTIONS = TO_LIST(options)