summaryrefslogtreecommitdiff
path: root/buildtools/wafsamba/samba_deps.py
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2010-10-21 13:52:47 +1100
committerAndrew Tridgell <tridge@samba.org>2010-10-21 19:03:25 +1100
commit6f36a015b1975a9ea027da8cf009cd38f074d77f (patch)
tree716f22b0cf8fdae9fd5b1ed62c9ec0957f5bf46f /buildtools/wafsamba/samba_deps.py
parente98ca6e868eb8cc25968e67ada2e153e828131ff (diff)
downloadsamba-6f36a015b1975a9ea027da8cf009cd38f074d77f.tar.gz
samba-6f36a015b1975a9ea027da8cf009cd38f074d77f.tar.bz2
samba-6f36a015b1975a9ea027da8cf009cd38f074d77f.zip
waf: prevent the global deps list creating depenency loops
this prevents a loop between SOCKET_WRAPPER and replace in the s3 waf build
Diffstat (limited to 'buildtools/wafsamba/samba_deps.py')
-rw-r--r--buildtools/wafsamba/samba_deps.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/buildtools/wafsamba/samba_deps.py b/buildtools/wafsamba/samba_deps.py
index 59bb764fb7..5f9f294e56 100644
--- a/buildtools/wafsamba/samba_deps.py
+++ b/buildtools/wafsamba/samba_deps.py
@@ -414,14 +414,22 @@ def build_direct_deps(bld, tgt_list):
targets = LOCAL_CACHE(bld, 'TARGET_TYPE')
syslib_deps = LOCAL_CACHE(bld, 'SYSLIB_DEPS')
+
global_deps = bld.env.GLOBAL_DEPENDENCIES
+ global_deps_exclude = set()
+ for dep in global_deps:
+ t = bld.name_to_obj(dep, bld.env)
+ for d in t.samba_deps:
+ # prevent loops from the global dependencies list
+ global_deps_exclude.add(d)
+ global_deps_exclude.add(d + '.objlist')
for t in tgt_list:
t.direct_objects = set()
t.direct_libs = set()
t.direct_syslibs = set()
deps = t.samba_deps_extended[:]
- if getattr(t, 'samba_use_global_deps', False):
+ if getattr(t, 'samba_use_global_deps', False) and not t.sname in global_deps_exclude:
deps.extend(global_deps)
for d in deps:
d = EXPAND_ALIAS(bld, d)