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

java_library(
    name = "r8",
    srcs = glob(["*.java", "desugar/*.java"]),
    deps = [
        "//external:android/d8_jar_import",
        "//src/tools/android/java/com/google/devtools/build/android:all_android_tools",
    ],
    plugins = ["auto_value_plugin"],
)

java_plugin(
    name = "auto_value_plugin",
    processor_class = "com.google.auto.value.processor.AutoValueProcessor",
    deps = ["//src/tools/android/java/com/google/devtools/build/android:all_android_tools"],
)

java_binary(
    name = "DexBuilder",
    main_class = "com.google.devtools.build.android.r8.DexBuilder",
    visibility = ["//tools/android:__subpackages__"],
    runtime_deps = [":r8"],
)

java_binary(
    name = "DexFileMerger",
    main_class = "com.google.devtools.build.android.r8.DexFileMerger",
    visibility = ["//tools/android:__subpackages__"],
    runtime_deps = [":r8"],
)

java_binary(
    name = "desugar",
    jvm_flags = [
        # b/71513487
        "-XX:+TieredCompilation",
        "-XX:TieredStopAtLevel=1",
        "-Xms8g",
        "-Xmx8g",
        # b/172508621
        "-Dcom.android.tools.r8.sortMethodsOnCfWriting",
        "-Dcom.android.tools.r8.allowAllDesugaredInput",
        "-Dcom.android.tools.r8.noCfMarkerForDesugaredCode",
        "-Dcom.android.tools.r8.lambdaClassFieldsNotFinal",
        "-Dcom.android.tools.r8.createSingletonsForStatelessLambdas",
    ],
    main_class = "com.google.devtools.build.android.r8.Desugar",
    visibility = ["//tools/android:__subpackages__"],
    runtime_deps = [
        ":r8",
    ],
)
