load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
load("@rules_jvm_external//:defs.bzl", "java_export")
load("//:maven.bzl", "JAZZER_API_COORDINATES", "JAZZER_COORDINATES", "JAZZER_JUNIT_COORDINATES")
load("//bazel:compat.bzl", "SKIP_ON_WINDOWS")

bool_flag(
    name = "linked_javadoc",
    build_setting_default = False,
)

config_setting(
    name = "emit_linked_javadoc",
    flag_values = {
        ":linked_javadoc": "True",
    },
    visibility = ["//:__subpackages__"],
)

sh_binary(
    name = "deploy",
    srcs = ["deploy.sh"],
    args = [JAZZER_COORDINATES],
)

java_export(
    name = "jazzer-api",
    javadocopts = select({
        ":emit_linked_javadoc": [
            "-link",
            "https://docs.oracle.com/en/java/javase/17/docs/api/",
        ],
        "//conditions:default": [],
    }),
    maven_coordinates = JAZZER_API_COORDINATES,
    pom_template = "//deploy:jazzer-api.pom",
    visibility = ["//visibility:public"],
    runtime_deps = ["//src/main/java/com/code_intelligence/jazzer/api"],
)

java_export(
    name = "jazzer",
    maven_coordinates = JAZZER_COORDINATES,
    pom_template = "jazzer.pom",
    # Do not generate an implicit javadocs target - the current target is based on the shaded deploy
    # JAR, for which the docs JAR generated by default would be empty.
    tags = ["no-javadocs"],
    visibility = ["//visibility:public"],
    runtime_deps = [
        "//src/main/java/com/code_intelligence/jazzer:jazzer_import",
    ],
)

alias(
    name = "jazzer-docs",
    actual = "//src/main/java/com/code_intelligence/jazzer:jazzer-docs",
)

alias(
    name = "jazzer-sources",
    actual = "//src/main/java/com/code_intelligence/jazzer:jazzer-sources",
)

java_export(
    name = "jazzer-junit",
    # Exclude the unshaded classes comprising com.code-intelligence:jazzer since the java_library
    # target comprising jazzer-junit depend on the individual libraries, not the shaded jar.
    deploy_env = ["//src/main/java/com/code_intelligence/jazzer:jazzer_lib"],
    javadocopts = select({
        ":emit_linked_javadoc": [
            "-link",
            "https://docs.oracle.com/en/java/javase/17/docs/api/",
            "-link",
            "https://codeintelligencetesting.github.io/jazzer-docs/jazzer-api/",
            "-link",
            "https://codeintelligencetesting.github.io/jazzer-docs/jazzer/",
            "-link",
            "https://junit.org/junit5/docs/current/api/",
        ],
        "//conditions:default": [],
    }),
    maven_coordinates = JAZZER_JUNIT_COORDINATES,
    pom_template = "jazzer-junit.pom",
    visibility = ["//visibility:public"],
    runtime_deps = [
        # These deps' only effect is to include a dependency on the 'jazzer' and 'jazzer-api' Maven artifacts in the
        # POM.
        "//deploy:jazzer",
        "//deploy:jazzer-api",
        "//src/main/java/com/code_intelligence/jazzer/junit",
    ],
)

[
    sh_test(
        name = artifact + "_artifact_test",
        srcs = [artifact + "_artifact_test.sh"],
        args = [
            "$(rootpath :%s)" % artifact,
        ],
        data = [
            ":" + artifact,
            "@local_jdk//:bin/jar",
        ],
        tags = [
            # Coverage instrumentation necessarily adds files to the jar that we
            # wouldn't want to release and thus causes this test to fail.
            "no-coverage",
        ],
        target_compatible_with = SKIP_ON_WINDOWS,
    )
    for artifact in [
        "jazzer-api",
        "jazzer",
        "jazzer-junit",
    ]
]
