github.com/johnnyeven/libtools@v0.0.0-20191126065708-61829c1adf46/third_party/toolchains/clang6/repo.bzl (about)

     1  """Repository rule for Debian 8 Jessie Clang-6.0 portable Linux builds."""
     2  
     3  def _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  
    27  clang6_configure = repository_rule(
    28      implementation = _clang6_configure,
    29      attrs = {
    30          "_build": attr.label(
    31              default = str(Label("//third_party/toolchains/clang6:clang.BUILD")),
    32          ),
    33          "_crosstool": attr.label(
    34              default = str(Label("//third_party/toolchains/clang6:CROSSTOOL.tpl")),
    35          ),
    36      },
    37  )