load(
    "//tools/jdk:default_java_toolchain.bzl",
    "default_remote_java_toolchain",
    "java_runtime_files",
    "JDK8_JVM_OPTS",
    "bootclasspath",
)
load(
    "//tools/jdk:java_toolchain_alias.bzl",
    "java_toolchain_alias",
    "java_runtime_alias",
    "java_host_runtime_alias",
    "legacy_java_toolchain_alias",
    "legacy_java_runtime_alias",
)

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

# Used to distinguish toolchains used for Java development, ie the JavaToolchainProvider.
toolchain_type(name = "toolchain_type")

# Used to distinguish toolchains used for Java execution, ie the JavaRuntimeInfo.
toolchain_type(name = "runtime_toolchain_type")

toolchain(
    name = "dummy_java_toolchain",
    toolchain = ":dummy_toolchain",
    toolchain_type = ":toolchain_type",
)

cc_binary(name = "dummy_binary")

java_toolchain(
    name = "dummy_toolchain",
    genclass = [":dummy_binary"],
    ijar = [":dummy_binary"],
    javabuilder = [":dummy_binary"],
    javac = [":dummy_binary"],
    singlejar = [":dummy_binary"],
)

toolchain(
    name = "dummy_java_runtime_toolchain",
    toolchain = ":dummy_java_runtime",
    toolchain_type = ":runtime_toolchain_type",
)

java_runtime(name = "dummy_java_runtime")

java_runtime_alias(name = "current_java_runtime")

java_host_runtime_alias(name = "current_host_java_runtime")

java_toolchain_alias(name = "current_java_toolchain")

# This exists to support the migration to toolchain resolution.
# TODO(cushon): delete once the migration is complete.
legacy_java_runtime_alias(name = "legacy_current_java_runtime")

legacy_java_toolchain_alias(name = "legacy_current_java_toolchain")

# Used to set --host_javabase or --javabase to a local JDK without having to define
# a custom java_runtime rule.
# E.g.:
# bazel build --host_javabase=@bazel_tools//tools/jdk:absolute_javabase \
#   --define=ABSOLUTE_JAVABASE=<path to JDK> ...
java_runtime(
    name = "absolute_javabase",
    java_home = "$(ABSOLUTE_JAVABASE)",
)

filegroup(
    name = "BUILD-jdk",
    srcs = [":BUILD"],
)

# This is necessary to get the *host* Java runtime. Depending on
# //tools/jdk:current_java_runtime from an attribute with the host transition
# does not work because the dependency is determined based on the configuration
# *before* the transition.
alias(
    name = "java_runtime_alias",
    actual = "@bazel_tools//tools/jdk:current_java_runtime",
)

java_runtime_files(
    name = "jni_header",
    srcs = ["include/jni.h"],
)

java_runtime_files(
    name = "jni_md_header-darwin",
    srcs = ["include/darwin/jni_md.h"],
)

java_runtime_files(
    name = "jni_md_header-linux",
    srcs = ["include/linux/jni_md.h"],
)

java_runtime_files(
    name = "jni_md_header-windows",
    srcs = ["include/win32/jni_md.h"],
)

java_runtime_files(
    name = "jni_md_header-freebsd",
    srcs = ["include/freebsd/jni_md.h"],
)

alias(
    name = "java",
    actual = "@local_jdk//:java",
)

alias(
    name = "jar",
    actual = "@local_jdk//:jar",
)

alias(
    name = "javac",
    actual = "@local_jdk//:javac",
)

# On Windows, executables end in ".exe", but the label we reach it through
# must be platform-independent. Thus, we create a little filegroup that
# contains the appropriate platform-dependent file.
filegroup(
    name = "ijar",
    srcs = select({
        "//src/conditions:remote": ["//third_party/ijar:ijar"],
        "//conditions:default": glob(["ijar/*"]),
    }),
)

# On Windows, Java implementation of singlejar is used. We create a little
# filegroup that contains the appropriate platform-dependent file.
# Once https://github.com/bazelbuild/bazel/issues/2241 is fixed (that is,
# the native singlejar is used on windows), this file group can be reused since
# on Windows, executables end in ".exe", but the label we reach it through
# must be platform-independent.
filegroup(
    name = "singlejar",
    srcs = select({
        "//src/conditions:remote": ["//src/tools/singlejar:singlejar"],
        "//conditions:default": glob(["singlejar/*"]),
    }),
)

exports_files(["BUILD.pkg"])

filegroup(
    name = "remote-genclass",
    srcs = ["@remote_java_tools//:GenClass"],
)

filegroup(
    name = "remote-turbine",
    srcs = ["@remote_java_tools//:Turbine"],
)

filegroup(
    name = "remote-turbine_direct",
    srcs = ["@remote_java_tools//:TurbineDirect"],
)

filegroup(
    name = "remote-javabuilder",
    srcs = ["@remote_java_tools//:JavaBuilder"],
)

filegroup(
    name = "vanillajavabuilder",
    srcs = ["//tools/jdk:VanillaJavaBuilder_deploy.jar"],
)

filegroup(
    name = "remote-vanillajavabuilder",
    srcs = ["@remote_java_tools//:VanillaJavaBuilder"],
)

filegroup(
    name = "remote-javac_jar",
    srcs = ["@remote_java_tools//:javac_jar"],
)

filegroup(
    name = "remote-jdk_compiler_jar",
    srcs = ["@remote_java_tools//:jdk_compiler_jar"],
)

filegroup(
    name = "remote-java_compiler_jar",
    srcs = ["@remote_java_tools//:java_compiler_jar"],
)

java_import(
    name = "remote_jacoco_coverage_runner",
    jars = ["@remote_java_tools//:java_tools/JacocoCoverage_jarjar_deploy.jar"],
)

java_import(
    name = "TestRunner",
    jars = ["@remote_java_tools//:java_tools/Runner_deploy.jar"],
)

java_import(
    name = "ExperimentalTestRunner",
    jars = ["@remote_java_tools//:java_tools/ExperimentalRunner_deploy.jar"],
)

BOOTCLASS_JARS = [
    "rt.jar",
    "resources.jar",
    "jsse.jar",
    "jce.jar",
    "charsets.jar",
]

# TODO(cushon): this isn't compatible with JDK 9
alias(
    name = "bootclasspath",
    actual = "@local_jdk//:bootclasspath",
)

alias(
    name = "extclasspath",
    actual = "@local_jdk//:extdir",
)

# TODO(cushon): migrate to extclasspath and delete
alias(
    name = "extdir",
    actual = "@local_jdk//:extdir",
)

filegroup(
    name = "langtools",
    srcs = ["//third_party/java/jdk/langtools:javac_jar"],
)

java_import(
    name = "langtools-neverlink",
    jars = [":langtools"],
    neverlink = 1,
)

alias(
    name = "jre",
    actual = "@local_jdk//:jre",
)

alias(
    name = "jdk",
    actual = "@local_jdk//:jdk",
)

alias(
    name = "host_jdk",
    actual = ":remote_jdk",
)

bootclasspath(
    name = "platformclasspath",
    src = "DumpPlatformClassPath.java",
    host_javabase = "current_java_runtime",
    target_javabase = "current_java_runtime",
)

default_remote_java_toolchain(
    name = "toolchain_hostjdk8",
    jvm_opts = JDK8_JVM_OPTS,
    source_version = "8",
    target_version = "8",
)

default_remote_java_toolchain(
    name = "remote_toolchain_hostjdk8",
    jvm_opts = JDK8_JVM_OPTS,
    source_version = "8",
    target_version = "8",
)

# Default to the Java 8 language level.
# TODO(cushon): consider if/when we should increment this?
default_remote_java_toolchain(
    name = "toolchain",
    source_version = "8",
    target_version = "8",
)

default_remote_java_toolchain(
    name = "remote_toolchain",
    source_version = "8",
    target_version = "8",
)

# The 'vanilla' toolchain is an unsupported alternative to the default.
#
# It does not provider any of the following features:
#   * Error Prone
#   * Strict Java Deps
#   * Header Compilation
#   * Reduced Classpath Optimization
#
# It uses the version of javac from the `--host_javabase` instead of the
# embedded javac, which may not be source- or bug-compatible with the embedded
# javac.
#
# However it does allow using a wider range of `--host_javabase`s, including
# versions newer than the current embedded JDK.
default_remote_java_toolchain(
    name = "toolchain_vanilla",
    forcibly_disable_header_compilation = True,
    javabuilder = [":vanillajavabuilder"],
    jvm_opts = [],
)

default_remote_java_toolchain(
    name = "remote_toolchain_vanilla",
    forcibly_disable_header_compilation = True,
    javabuilder = ["@bazel_tools//tools/jdk:remote-vanillajavabuilder"],
    jvm_opts = [],
)

RELEASES = (8, 9)

[
    default_remote_java_toolchain(
        name = "toolchain_java%d" % release,
        source_version = "%s" % release,
        target_version = "%s" % release,
    )
    for release in RELEASES
]

filegroup(
    name = "srcs",
    srcs = [
        "BUILD-jdk",  # Tools are build from the workspace for tests.
        "DumpPlatformClassPath.java",
        "default_java_toolchain.bzl",
        "java_toolchain_alias.bzl",
        "proguard_whitelister.py",
        "proguard_whitelister_test.py",
        "proguard_whitelister_test_input.cfg",
        "toolchain_utils.bzl",
    ],
)

filegroup(
    name = "package-srcs",
    srcs = glob(["**"]),
)

py_binary(
    name = "proguard_whitelister",
    srcs = [
        "proguard_whitelister.py",
    ],
    deps = [
        "//third_party/py/gflags",
    ],
)

py_test(
    name = "proguard_whitelister_test",
    srcs = ["proguard_whitelister_test.py"],
    data = ["proguard_whitelister_test_input.cfg"],
    deps = [
        ":proguard_whitelister",
    ],
)

# For java coverage
alias(
    name = "jacoco-blaze-agent",
    actual = "//third_party/java/jacoco:blaze-agent",
)

java_import(
    name = "JarJar",
    jars = [":jarjar_command_deploy.jar"],
)

test_suite(
    name = "windows_tests",
    tags = [
        "-no_windows",
        "-slow",
    ],
    visibility = ["//visibility:private"],
)

test_suite(
    name = "all_windows_tests",
    tests = [":windows_tests"],
    visibility = ["//tools:__pkg__"],
)

# Replacement for the embedded JDK as host javabase.
alias(
    name = "remote_jdk",
    actual = select(
        {
            "//src/conditions:darwin": "@remotejdk_macos//:jdk",
            "//src/conditions:darwin_x86_64": "@remotejdk_macos//:jdk",
            "//src/conditions:windows": "@remotejdk_win//:jdk",
            "//src/conditions:linux_aarch64": "@remotejdk_linux_aarch64//:jdk",
            "//src/conditions:linux_x86_64": "@remotejdk_linux//:jdk",
        },
        no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
                         " provide one using `--host_javabase.`",
    ),
    visibility = ["//visibility:public"],
)

# A JDK 10 for use as a --host_javabase.
alias(
    name = "remote_jdk10",
    actual = select(
        {
            "//src/conditions:darwin": "@remotejdk10_macos//:jdk",
            "//src/conditions:darwin_x86_64": "@remotejdk10_macos//:jdk",
            "//src/conditions:windows": "@remotejdk10_win//:jdk",
            "//src/conditions:linux_aarch64": "@remotejdk10_linux_aarch64//:jdk",
            "//src/conditions:linux_x86_64": "@remotejdk10_linux//:jdk",
        },
        no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
                         " provide one using `--host_javabase.`",
    ),
    visibility = ["//visibility:public"],
)

# A JDK 11 for use as a --host_javabase.
alias(
    name = "remote_jdk11",
    actual = select(
        {
            "//src/conditions:darwin": "@remotejdk11_macos//:jdk",
            "//src/conditions:darwin_x86_64": "@remotejdk11_macos//:jdk",
            "//src/conditions:windows": "@remotejdk11_win//:jdk",
            "//src/conditions:linux_x86_64": "@remotejdk11_linux//:jdk",
        },
        no_match_error = "Could not find a JDK for host execution environment, please explicitly" +
                         " provide one using `--host_javabase.`",
    ),
    visibility = ["//visibility:public"],
)
