<%include file="header.mako" />

package(default_visibility = ["//visibility:public"])

cc_toolchain_suite(
    name = "toolchain",
    toolchains = {
        % for arch in data.arches:
        "${arch.long_name}|llvm": ":cc-compiler-${arch.long_name}",
        "${arch.long_name}": ":cc-compiler-${arch.long_name}",
        % endfor
    },
)

TARGET_CPUS = [
    % for arch in data.arches:
    "${arch.long_name}",
    % endfor
]

filegroup(
    name = "empty",
)

filegroup(
    name = "cc-compiler-prebuilts",
    srcs = [
        "clang/bin/clang",
        "clang/bin/clang-8",
        "clang/bin/llvm-ar",
        "clang/bin/clang++",
        "clang/bin/ld.lld",
        "clang/bin/lld",
        "clang/bin/llvm-nm",
        "clang/bin/llvm-objdump",
        "clang/bin/llvm-strip",
        "clang/bin/llvm-objcopy",
    ] + glob([
        "clang/lib/clang/8.0.0/include/**",
    ]),
)

filegroup(
    name = "compile",
    srcs = [
        ":cc-compiler-prebuilts",
    ],
)

filegroup(
    name = "objcopy",
    srcs = [
        "clang/bin/llvm-objcopy",
    ],
)

[
    filegroup(
        name = "every-file-" + cpu,
        srcs = [
            ":cc-compiler-prebuilts",
            ":runtime-" + cpu,
        ],
    )
    for cpu in TARGET_CPUS
]

[
    filegroup(
        name = "link-" + cpu,
        srcs = [
            ":cc-compiler-prebuilts",
            ":runtime-" + cpu,
        ],
    )
    for cpu in TARGET_CPUS
]

[
    filegroup(
        name = "runtime-" + cpu,
        srcs = [
            "clang/lib/clang/8.0.0/" + cpu + "-fuchsia/lib/libclang_rt.builtins.a",
        ],
    )
    for cpu in TARGET_CPUS
]

[
    cc_toolchain(
        name = "cc-compiler-" + cpu,
        toolchain_identifier = "crosstool-1.x.x-llvm-fuchsia-" + cpu,
        all_files = ":every-file-" + cpu,
        compiler_files = ":compile",
        cpu = cpu,
        dwp_files = ":empty",
        dynamic_runtime_libs = [":runtime-" + cpu],
        linker_files = ":link-" + cpu,
        objcopy_files = ":objcopy",
        static_runtime_libs = [":runtime-" + cpu],
        strip_files = ":runtime-" + cpu,
        supports_param_files = 1,
    )
    for cpu in TARGET_CPUS
]

cc_library(
    name = "sources",
    srcs = glob(["src/**"]),
    visibility = ["//visibility:public"],
)

[
    filegroup(
        name = "dist-" + cpu,
        srcs = [
            "clang/lib/clang/8.0.0/" + cpu + "-fuchsia/lib/libc++.so.2",
            "clang/lib/clang/8.0.0/" + cpu + "-fuchsia/lib/libc++abi.so.1",
            "clang/lib/clang/8.0.0/" + cpu + "-fuchsia/lib/libunwind.so.1",
        ],
    )
    for cpu in TARGET_CPUS
]
