# NOTE: THIS FILE IS EXPERIMENTAL FOR THE BAZEL MIGRATION AND NOT USED FOR
# YOUR BUILDS CURRENTLY.
#
# It is not yet the source of truth for your build. If you're looking to modify
# the build file, modify the Android.bp file instead. Do *not* modify this file
# unless you have coordinated with the team managing the Soong to Bazel
# migration.

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

# Toolchain config
filegroup(name = "empty")

load(":cc_toolchain_config.bzl", "android_cc_toolchain", "clang_version")
load(":clang_version.bzl", "DEFAULT_SHORT_VERSION", "DEFAULT_VERSION")

# Different clang versions are configured here.
clang_version(
    name = "clang",
    directory = DEFAULT_VERSION,
    includes = [
        "lib64/clang/%s/include" % DEFAULT_SHORT_VERSION,
    ],
)

# x86_64 toolchain definition.
android_cc_toolchain(
    name = "cc_toolchain_x86_64",
    clang_version = ":clang",
    clang_version_directory = DEFAULT_VERSION,
    target_flags = [
        "-m64",
        "-march=x86-64",
        "--target=x86_64-linux-android10000",
        "-mssse3",
        "-msse4",
        "-msse4.1",
        "-msse4.2",
        "-mpopcnt",
    ],
    toolchain_identifier = "x86_64-toolchain",
)

toolchain(
    name = "cc_toolchain_x86_64_def",
    exec_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    target_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:android",
    ],
    toolchain = ":cc_toolchain_x86_64",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

# TODO(b/181803350): Fix linux toolchain flag set, as the current flags are for android.
toolchain(
    name = "cc_toolchain_x86_64_linux_def",
    exec_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    target_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    toolchain = ":cc_toolchain_x86_64",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

# x86 toolchain definition.
android_cc_toolchain(
    name = "cc_toolchain_x86",
    clang_version = ":clang",
    clang_version_directory = DEFAULT_VERSION,
    linker_flags = [
        "-Wl,-dynamic-linker,/system/bin/linker",
    ],
    target_flags = [
        "--target=i686-linux-android10000",
        "-m32",
        "-march=prescott",
        "-msse3",
        "-mstackrealign",
    ],
    toolchain_identifier = "x86-toolchain",
)

toolchain(
    name = "cc_toolchain_x86_def",
    exec_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    target_compatible_with = [
        "//build/bazel/platforms/arch:x86",
        "//build/bazel/platforms/os:android",
    ],
    toolchain = ":cc_toolchain_x86",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

# arm64 toolchain definition.
android_cc_toolchain(
    name = "cc_toolchain_arm64",
    clang_version = ":clang",
    clang_version_directory = DEFAULT_VERSION,
    linker_flags = [
        # Obtained from build/soong/rust/config/arm64_device.go
        "-Wl,--icf=safe",
        "-Wl,-z,max-page-size=4096",
        "-Wl,--execute-only",
        "-Wl,-z,separate-code",
    ],
    target_flags = [
        "--target=aarch64-linux-android10000",
        "-march=armv8-a",
    ],
    toolchain_identifier = "arm64-toolchain",
)

toolchain(
    name = "cc_toolchain_arm64_def",
    exec_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    target_compatible_with = [
        "//build/bazel/platforms/arch:arm64",
        "//build/bazel/platforms/os:android",
    ],
    toolchain = ":cc_toolchain_arm64",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

# arm32 toolchain definition.
android_cc_toolchain(
    name = "cc_toolchain_arm32",
    clang_version = ":clang",
    clang_version_directory = DEFAULT_VERSION,
    linker_flags = [
        "-Wl,-dynamic-linker,/system/bin/linker",
    ],
    target_flags = [
        "--target=armv7a-linux-androideabi10000",
        "-march=armv7-a",
        "-mfpu=neon",
        "-msoft-float",
        "-mfloat-abi=softfp",
        "-mthumb",
        "-fomit-frame-pointer",
    ],
    toolchain_identifier = "arm-toolchain",
)

toolchain(
    name = "cc_toolchain_arm32_def",
    exec_compatible_with = [
        "//build/bazel/platforms/arch:x86_64",
        "//build/bazel/platforms/os:linux",
    ],
    target_compatible_with = [
        "//build/bazel/platforms/arch:arm",
        "//build/bazel/platforms/os:android",
    ],
    toolchain = ":cc_toolchain_arm32",
    toolchain_type = "@bazel_tools//tools/cpp:toolchain_type",
)

cc_toolchain_suite(
    name = "android_toolchain_suite",
    toolchains = {
        "x86_64": "cc_toolchain_x86_64",
        "x86": "cc_toolchain_x86",
        "arm64": "cc_toolchain_arm64",
        "arm32": "cc_toolchain_arm32",
    },
)

_LIBCLANG_RT_PREFIX = "%s/lib64/clang/%s/lib/linux" % (DEFAULT_VERSION, DEFAULT_SHORT_VERSION)

cc_import(
    name = "libclang_rt",
    static_library = select({
        "//build/bazel/platforms/arch:arm": _LIBCLANG_RT_PREFIX + "/libclang_rt.builtins-arm-android.a",
        "//build/bazel/platforms/arch:arm64": _LIBCLANG_RT_PREFIX + "/libclang_rt.builtins-aarch64-android.a",
        "//build/bazel/platforms/arch:x86": _LIBCLANG_RT_PREFIX + "/libclang_rt.builtins-i386.a",
        "//build/bazel/platforms/arch:x86_64": _LIBCLANG_RT_PREFIX + "/libclang_rt.builtins-x86_64-android.a",
    }),
)

alias(
    name = "llvm-ar",
    actual = DEFAULT_VERSION + "/bin/llvm-ar",
    visibility = ["//visibility:public"],
)
