• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"""Repository rule for Debian 8 Jessie Clang-6.0 portable Linux builds."""
2
3def _clang6_configure(ctx):
4    # TODO(jart): It'd probably be better to use Bazel's struct.to_proto()
5    #             method to generate a gigantic CROSSTOOL file that allows
6    #             Clang to support everything.
7    ctx.symlink(
8        ctx.os.environ.get(
9            "TF_LLVM_PATH",
10            "/usr/lib/llvm-6.0",
11        ),
12        "clang6/llvm",
13    )
14    ctx.symlink(
15        ctx.os.environ.get("STRIP", "/usr/bin/strip"),
16        "clang6/sbin/strip",
17    )
18    ctx.symlink(
19        ctx.os.environ.get("OBJDUMP", "/usr/bin/objdump"),
20        "clang6/sbin/objdump",
21    )
22    ctx.symlink(ctx.attr._build, "clang6/BUILD")
23    ctx.template("clang6/CROSSTOOL", ctx.attr._crosstool, {
24        "%package(@local_config_clang6//clang6)%": str(ctx.path("clang6")),
25    })
26
27clang6_configure = repository_rule(
28    implementation = _clang6_configure,
29    attrs = {
30        "_build": attr.label(
31            default = str(Label("//tensorflow/tools/toolchains/clang6:clang.BUILD")),
32        ),
33        "_crosstool": attr.label(
34            default = str(Label("//tensorflow/tools/toolchains/clang6:CROSSTOOL.tpl")),
35        ),
36    },
37)
38