diff options
author | Andrew Bartlett <abartlet@samba.org> | 2011-06-24 16:26:23 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2011-06-24 16:26:23 +1000 |
commit | 6da26870e0ae5acd6ff49a30ec2f6886b44d095e (patch) | |
tree | 850c71039563c16a5d563c47e7ba2ab645baf198 /buildtools/wafsamba/samba_wildcard.py | |
parent | 6925a799d04c6fa59dd2ddef1f5510f9bb7d17d1 (diff) | |
parent | 2610c05b5b95cc7036b3d6dfb894c6cfbdb68483 (diff) | |
download | samba-6da26870e0ae5acd6ff49a30ec2f6886b44d095e.tar.gz samba-6da26870e0ae5acd6ff49a30ec2f6886b44d095e.tar.bz2 samba-6da26870e0ae5acd6ff49a30ec2f6886b44d095e.zip |
Merge 2610c05b5b95cc7036b3d6dfb894c6cfbdb68483 as Samba-4.0alpha16
Diffstat (limited to 'buildtools/wafsamba/samba_wildcard.py')
-rw-r--r-- | buildtools/wafsamba/samba_wildcard.py | 35 |
1 files changed, 31 insertions, 4 deletions
diff --git a/buildtools/wafsamba/samba_wildcard.py b/buildtools/wafsamba/samba_wildcard.py index 5bf12672a9..75ab5defcd 100644 --- a/buildtools/wafsamba/samba_wildcard.py +++ b/buildtools/wafsamba/samba_wildcard.py @@ -17,7 +17,7 @@ def run_task(t, k): def run_named_build_task(cmd): '''run a named build task, matching the cmd name using fnmatch wildcards against inputs and outputs of all build tasks''' - bld = fake_build_environment() + bld = fake_build_environment(info=False) found = False cwd_node = bld.root.find_dir(os.getcwd()) top_node = bld.root.find_dir(bld.srcnode.abspath()) @@ -50,6 +50,28 @@ def run_named_build_task(cmd): raise Utils.WafError("Unable to find build target matching %s" % cmd) +def rewrite_compile_targets(): + '''cope with the bin/ form of compile target''' + if not Options.options.compile_targets: + return + + bld = fake_build_environment(info=False) + targets = LOCAL_CACHE(bld, 'TARGET_TYPE') + tlist = [] + + for t in Options.options.compile_targets.split(','): + if not os.path.islink(t): + tlist.append(t) + continue + link = os.readlink(t) + list = link.split('/') + for name in [list[-1], '/'.join(list[-2:])]: + if name in targets: + tlist.append(name) + continue + Options.options.compile_targets = ",".join(tlist) + + def wildcard_main(missing_cmd_fn): '''this replaces main from Scripting, allowing us to override the @@ -60,6 +82,9 @@ def wildcard_main(missing_cmd_fn): ''' Scripting.commands = Options.arg_line[:] + # rewrite the compile targets to cope with the bin/xx form + rewrite_compile_targets() + while Scripting.commands: x = Scripting.commands.pop(0) @@ -99,7 +124,7 @@ def wildcard_main(missing_cmd_fn): -def fake_build_environment(): +def fake_build_environment(info=True, flush=False): """create all the tasks for the project, but do not run the build return the build context in use""" bld = getattr(Utils.g_module, 'build_context', Utils.Context)() @@ -119,10 +144,12 @@ def fake_build_environment(): bld.load_dirs(proj[SRCDIR], proj[BLDDIR]) bld.load_envs() - Logs.info("Waf: Entering directory `%s'" % bld.bldnode.abspath()) + if info: + Logs.info("Waf: Entering directory `%s'" % bld.bldnode.abspath()) bld.add_subdirs([os.path.split(Utils.g_module.root_path)[0]]) bld.pre_build() - bld.flush() + if flush: + bld.flush() return bld |