# Description:
#   SingleJar combines multiple zip files and additional files
#   into a single zip file.
package(default_visibility = ["//src:__subpackages__"])

filegroup(
    name = "srcs",
    srcs = glob(["**"]) + ["//src/java_tools/singlejar/java/com/google/devtools/build/zip:srcs"],
    visibility = [
        "//src:__pkg__",
        "//src/test/shell/bazel:__pkg__",
    ],
)

java_library(
    name = "libSingleJar",
    srcs = glob(["java/**/singlejar/**/*.java"]),
    visibility = [
        "//src:__subpackages__",
        "//third_party/java/apkbuilder:__pkg__",
    ],
    deps = [
        "//src/java_tools/singlejar/java/com/google/devtools/build/zip",
        "//src/main/java/com/google/devtools/build/lib:shell",
        "//src/main/protobuf:worker_protocol_java_proto",
        "//third_party:jsr305",
    ],
)

java_binary(
    name = "SingleJar",
    main_class = "com.google.devtools.build.singlejar.SingleJar",
    runtime_deps = [":libSingleJar"],
)

java_test(
    name = "tests",
    srcs = glob(["javatests/**/singlejar/**/*.java"]),
    test_class = "com.google.devtools.build.singlejar.SingleJarTests",
    deps = [
        ":libSingleJar",
        "//src/java_tools/singlejar/java/com/google/devtools/build/zip",
        "//src/main/java/com/google/devtools/build/lib:shell",
        "//src/test/java/com/google/devtools/build/lib:testutil",
        "//third_party:guava",
        "//third_party:jsr305",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

java_test(
    name = "zipTests",
    size = "enormous",
    srcs = glob(["javatests/**/zip/**/*.java"]),
    tags = ["zip"],
    test_class = "com.google.devtools.build.zip.ZipTests",
    deps = [
        "//src/java_tools/singlejar/java/com/google/devtools/build/zip",
        "//src/test/java/com/google/devtools/build/lib:testutil",
        "//third_party:guava",
        "//third_party:guava-testlib",
        "//third_party:junit4",
        "//third_party:truth",
    ],
)

#
# Bootstrapping using Skylark rules
#
load("//tools/build_rules:java_rules_skylark.bzl", "bootstrap_java_library", "bootstrap_java_binary")

bootstrap_java_library(
    name = "skylark-deps",
    jars = [
        "//third_party:jsr305-jars",
    ],
)

bootstrap_java_binary(
    name = "bootstrap",
    srcs = glob(
        ["java/**/*.java"],
        exclude = ["java/**/SingleJarWorker.java"],
    ) + [
        "//src/java_tools/singlejar/java/com/google/devtools/build/zip:java-srcs",
    ],
    main_class = "com.google.devtools.build.singlejar.SingleJar",
    visibility = ["//visibility:public"],
    deps = [
        ":skylark-deps",
        "//src/main/java/com/google/devtools/build/lib:shell-skylark",
    ],
)
