"""Repository rule for Debian 8 Jessie Clang-6.0 portable Linux builds.""" def _clang6_configure(ctx): # TODO(jart): It'd probably be better to use Bazel's struct.to_proto() # method to generate a gigantic CROSSTOOL file that allows # Clang to support everything. ctx.symlink( ctx.os.environ.get( "TF_LLVM_PATH", "/usr/lib/llvm-6.0", ), "clang6/llvm", ) ctx.symlink( ctx.os.environ.get("STRIP", "/usr/bin/strip"), "clang6/sbin/strip", ) ctx.symlink( ctx.os.environ.get("OBJDUMP", "/usr/bin/objdump"), "clang6/sbin/objdump", ) ctx.symlink(ctx.attr._build, "clang6/BUILD") ctx.template("clang6/CROSSTOOL", ctx.attr._crosstool, { "%package(@local_config_clang6//clang6)%": str(ctx.path("clang6")), }) clang6_configure = repository_rule( implementation = _clang6_configure, attrs = { "_build": attr.label( default = str(Label("//third_party/toolchains/clang6:clang.BUILD")), ), "_crosstool": attr.label( default = str(Label("//third_party/toolchains/clang6:CROSSTOOL.tpl")), ), }, )