def normalize_target_name(target):
    return target.replace("//", "").replace("/", "__").replace(":", "___")

def license_map(name, targets = [], opts = [], **kwargs):
    """Generate XML for all targets that depend directly on a LICENSE file"""
    xmls = []
    tools = ["//tools/bzl:license-map.py", "//lib:all-licenses"]
    for target in targets:
        subname = name + "_" + normalize_target_name(target) + ".xml"
        xmls.append("$(location :%s)" % subname)
        tools.append(subname)
        native.genquery(
            name = subname,
            scope = [target],

            # Find everything that depends on a license file, but remove
            # the license files themselves from this list.
            expression = 'rdeps(%s, filter("//lib:LICENSE.*", deps(%s)),1) - filter("//lib:LICENSE.*", deps(%s))' % (target, target, target),

            # We are interested in the edges of the graph ({java_library,
            # license-file} tuples).  'query' provides this in the XML output.
            opts = ["--output=xml"],
        )

    # post process the XML into our favorite format.
    native.genrule(
        name = "gen_license_txt_" + name,
        cmd = "python $(location //tools/bzl:license-map.py) %s %s > $@" % (" ".join(opts), " ".join(xmls)),
        outs = [name + ".gen.txt"],
        tools = tools,
        **kwargs
    )

def license_test(name, target):
    """Make sure a target doesn't depend on DO_NOT_DISTRIBUTE license"""
    txt = name + "-forbidden.txt"

    # fully qualify target name.
    if target[0] not in ":/":
        target = ":" + target
    if target[0] != "/":
        target = "//" + native.package_name() + target

    forbidden = "//lib:LICENSE-DO_NOT_DISTRIBUTE"
    native.genquery(
        name = txt,
        scope = [target, forbidden],
        # Find everything that depends on a license file, but remove
        # the license files themselves from this list.
        expression = 'rdeps(%s, "%s", 1) - rdeps(%s, "%s", 0)' % (target, forbidden, target, forbidden),
    )
    native.sh_test(
        name = name,
        srcs = ["//tools/bzl:test_license.sh"],
        args = ["$(location :%s)" % txt],
        data = [txt],
    )
