load("@rules_java//java:defs.bzl", "java_import", "java_runtime", "java_toolchain")
load(
    "//tools/jdk:default_java_toolchain.bzl",
    "JDK8_JVM_OPTS",
    "bootclasspath",
    "default_java_toolchain",
    "java_runtime_files",
)
load(
    "//tools/jdk:java_toolchain_alias.bzl",
    "java_host_runtime_alias",
    "java_runtime_alias",
    "java_toolchain_alias",
    "legacy_java_runtime_alias",
    "legacy_java_toolchain_alias",
)
load(
    "//tools/jdk:remote_java_tools_aliases.bzl",
    "remote_java_tools_filegroup",
    "remote_java_tools_java_import",
)
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library")
load("//tools/python:private/defs.bzl", "py_binary", "py_test")

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",
)

# These individual jni_* targets are exposed for legacy reasons.
# Most users should depend on :jni.

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"],
)

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

# The Java native interface. Depend on this package if you #include <jni.h>.
#
# See test_jni in third_party/bazel/src/test/shell/bazel/bazel_java_test.sh for
# an example of using Bazel to build a Java program that calls a C function.
#
# TODO(adonovan): add cases for //src/conditions:linux_{ppc,s390x} when released in Bazel.
# TODO(adonovan): why is there no //src/conditions target meaning "just linux"?
cc_library(
    name = "jni",
    hdrs = [":jni_header"] + select({
        "//src/conditions:linux_x86_64": [":jni_md_header-linux"],
        "//src/conditions:linux_aarch64": [":jni_md_header-linux"],
        "//src/conditions:darwin": [":jni_md_header-darwin"],
        "//src/conditions:freebsd": [":jni_md_header-freebsd"],
        "//src/conditions:openbsd": [":jni_md_header-openbsd"],
        "//src/conditions:windows": [":jni_md_header-windows"],
        "//conditions:default": [],
    }),
    includes = ["include"] + select({
        "//src/conditions:linux_x86_64": ["include/linux"],
        "//src/conditions:linux_aarch64": ["include/linux"],
        "//src/conditions:darwin": ["include/darwin"],
        "//src/conditions:freebsd": ["include/freebsd"],
        "//src/conditions:openbsd": ["include/openbsd"],
        "//src/conditions:windows": ["include/win32"],
        "//conditions:default": [],
    }),
)

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

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

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

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

# 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.
remote_java_tools_filegroup(
    name = "ijar",
    target = ":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.
remote_java_tools_filegroup(
    name = "singlejar",
    target = ":singlejar",
)

exports_files(["BUILD.java_tools"])

remote_java_tools_filegroup(
    name = "genclass",
    target = ":GenClass",
)

remote_java_tools_filegroup(
    name = "GenClass_deploy.jar",
    target = ":java_tools/GenClass_deploy.jar",
)

remote_java_tools_filegroup(
    name = "bazel-singlejar_deploy.jar",
    target = ":java_tools/bazel-singlejar_deploy.jar",
)

remote_java_tools_filegroup(
    name = "turbine",
    target = ":Turbine",
)

remote_java_tools_filegroup(
    name = "turbine_deploy.jar",
    target = ":java_tools/turbine_deploy.jar",
)

remote_java_tools_filegroup(
    name = "turbine_direct",
    target = ":TurbineDirect",
)

remote_java_tools_filegroup(
    name = "turbine_direct_binary_deploy.jar",
    target = ":java_tools/turbine_direct_binary_deploy.jar",
)

remote_java_tools_filegroup(
    name = "javabuilder",
    target = ":JavaBuilder",
)

remote_java_tools_filegroup(
    name = "JavaBuilder_deploy.jar",
    target = ":java_tools/JavaBuilder_deploy.jar",
)

remote_java_tools_filegroup(
    name = "vanillajavabuilder",
    target = ":VanillaJavaBuilder",
)

remote_java_tools_filegroup(
    name = "javac_jar",
    target = ":javac_jar",
)

remote_java_tools_filegroup(
    name = "jdk_compiler_jar",
    target = ":jdk_compiler_jar",
)

remote_java_tools_filegroup(
    name = "java_compiler_jar",
    target = ":java_compiler_jar",
)

remote_java_tools_java_import(
    name = "JacocoCoverageRunner",
    target = ":java_tools/JacocoCoverage_jarjar_deploy.jar",
)

remote_java_tools_java_import(
    name = "JacocoCoverage",
    target = ":java_tools/JacocoCoverage_jarjar_deploy.jar",
)

remote_java_tools_java_import(
    name = "TestRunner",
    target = ":java_tools/Runner_deploy.jar",
)

remote_java_tools_filegroup(
    name = "TestRunner_deploy.jar",
    target = ":java_tools/Runner_deploy.jar",
)

alias(
    name = "proguard",
    actual = select({
        "//src/conditions:darwin": "@remote_java_tools_darwin//:proguard",
        "//src/conditions:darwin_x86_64": "@remote_java_tools_darwin//:proguard",
        "//src/conditions:windows": "@remote_java_tools_windows//:proguard",
        "//src/conditions:linux_x86_64": "@remote_java_tools_linux//:proguard",
        # On different platforms the linux repository can be used because the
        # proguard deploy jar is platform-agnostic.
        "//conditions:default": "@remote_java_tools_linux//:proguard",
    }),
)

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_jdk11",
)

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

default_java_toolchain(
    name = "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_java_toolchain(
    name = "legacy_toolchain",
    source_version = "8",
    target_version = "8",
)

alias(
    name = "toolchain",
    actual = select({
        "//src/conditions:darwin": "@remote_java_tools_darwin//:toolchain",
        "//src/conditions:darwin_x86_64": "@remote_java_tools_darwin//:toolchain",
        "//src/conditions:windows": "@remote_java_tools_windows//:toolchain",
        "//src/conditions:linux_x86_64": "@remote_java_tools_linux//:toolchain",
        "//conditions:default": "@bazel_tools//tools/jdk:legacy_toolchain",
    }),
)

alias(
    name = "remote_toolchain",
    actual = select({
        "//src/conditions:darwin": "@remote_java_tools_darwin//:toolchain",
        "//src/conditions:darwin_x86_64": "@remote_java_tools_darwin//:toolchain",
        "//src/conditions:windows": "@remote_java_tools_windows//:toolchain",
        "//src/conditions:linux_x86_64": "@remote_java_tools_linux//:toolchain",
        "//conditions:default": "@bazel_tools//tools/jdk:legacy_toolchain",
    }),
)

# 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_java_toolchain(
    name = "toolchain_vanilla",
    forcibly_disable_header_compilation = True,
    javabuilder = [":vanillajavabuilder"],
    jvm_opts = [],
    source_version = "",
    target_version = "",
)

RELEASES = (8, 9, 10, 11)

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

filegroup(
    name = "srcs",
    srcs = [
        "BUILD.java_langtools",
        "BUILD.java_tools",
        "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.pgcfg",
        "remote_java_tools_aliases.bzl",
        "toolchain_utils.bzl",
    ],
)

filegroup(
    name = "bzl_srcs",
    srcs = glob(["*.bzl"]),
    visibility = ["//tools:__pkg__"],
)

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

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

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

remote_java_tools_java_import(
    name = "JarJar",
    target = ":JarJar",
)

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

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

# 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_aarch64": "@remotejdk11_linux_aarch64//: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"],
)
