aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/toolchains/clang6/repo.bzl
blob: b81f44506f382a6f2e4bfc005249c1a56cf0ae2f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""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'))),
    },
)