diff options
Diffstat (limited to 'tools/android/BUILD.tools')
-rw-r--r-- | tools/android/BUILD.tools | 98 |
1 files changed, 93 insertions, 5 deletions
diff --git a/tools/android/BUILD.tools b/tools/android/BUILD.tools index 4a12571b60..92ffa8701b 100644 --- a/tools/android/BUILD.tools +++ b/tools/android/BUILD.tools @@ -129,26 +129,114 @@ genrule( visibility = ["//visibility:private"], ) -filegroup( +java_import( name = "desugared_java8_legacy_apis", - srcs = [], # TODO(b/70681189): Populate with ijars + jars = [":ijar_desugared_java8_legacy_libs"], + neverlink = 1, visibility = ["//visibility:public"], ) +genrule( + name = "ijar_desugared_java8_legacy_libs", + srcs = ["desugared_java8_legacy_libs"], + outs = ["desugared_java8_legacy_libs-ijar.jar"], + cmd = "$(location //third_party/ijar) $< $@", + tools = ["//third_party/ijar"], + visibility = ["//visibility:private"], +) + sh_binary( name = "build_java8_legacy_dex", - srcs = ["fail.sh"], + srcs = ["build_java8_legacy_dex.sh"], + data = [":java8_legacy_dex"], visibility = ["//visibility:public"], ) genrule( name = "java8_legacy_dex", + srcs = ["desugared_java8_legacy_libs"], outs = ["java8_legacy.dex.zip"], - cmd = "$(location :build_java8_legacy_dex) --output $@", - tools = [":build_java8_legacy_dex"], + cmd = """$(location :dexer) --dex "--output=$@" $<""", + tools = [":dexer"], visibility = ["//visibility:public"], ) +filegroup( + name = "desugared_java8_legacy_libs", + srcs = ["desugared_java8_legacy_libs.jar"], + visibility = ["//visibility:private"], +) + +genrule( + name = "desugar_java8_legacy_libs", + srcs = ["desugar_jdk_libs.jar"], + outs = ["desugared_java8_legacy_libs.jar"], + cmd = """ + classpath=() + for j in $(locations //tools/jdk:bootclasspath); do + classpath+=("--classpath_entry") + classpath+=("$${j}") + done + $(location :desugar_java8) \ + --input $< \ + --output $@ \ + "$${classpath[@]}" \ + --core_library --allow_empty_bootclasspath \ + --nobest_effort_tolerate_missing_deps \ + --noemit_dependency_metadata_as_needed \ + --nodesugar_try_with_resources_if_needed \ + --desugar_supported_core_libs \ + --rewrite_core_library_prefix java/lang/Double8 \ + --rewrite_core_library_prefix java/lang/Integer8 \ + --rewrite_core_library_prefix java/lang/Long8 \ + --rewrite_core_library_prefix java/lang/Math8 \ + --rewrite_core_library_prefix java/time/ \ + --rewrite_core_library_prefix java/util/stream/ \ + --rewrite_core_library_prefix java/util/function/ \ + --rewrite_core_library_prefix java/util/Arrays8 \ + --rewrite_core_library_prefix java/util/Comparators \ + --rewrite_core_library_prefix java/util/DoubleSummaryStatistics \ + --rewrite_core_library_prefix java/util/IntSummaryStatistics \ + --rewrite_core_library_prefix java/util/LinkedHashSet8 \ + --rewrite_core_library_prefix java/util/LongSummaryStatistics \ + --rewrite_core_library_prefix java/util/Objects \ + --rewrite_core_library_prefix java/util/Optional \ + --rewrite_core_library_prefix java/util/PrimitiveIterator \ + --rewrite_core_library_prefix java/util/SortedSet\$$1 \ + --rewrite_core_library_prefix java/util/Spliterator \ + --rewrite_core_library_prefix java/util/StringJoiner \ + --rewrite_core_library_prefix java/util/TimeZone8 \ + --rewrite_core_library_prefix java/util/Tripwire \ + --retarget_core_library_member "java/util/Arrays#stream->java/util/Arrays8" \ + --retarget_core_library_member "java/util/Arrays#spliterator->java/util/Arrays8" \ + --retarget_core_library_member "java/util/LinkedHashSet#spliterator->java/util/LinkedHashSet8" \ + --emulate_core_library_interface java/util/Collection \ + --emulate_core_library_interface java/util/Map \ + --emulate_core_library_interface java/util/Map\$$Entry \ + --emulate_core_library_interface java/util/Iterator \ + --emulate_core_library_interface java/util/Comparator \ + --dont_rewrite_core_library_invocation "java/util/Iterator#remove" """, + tools = [ + ":desugar_java8", + "//tools/jdk:bootclasspath", + ], + visibility = ["//visibility:private"], +) + +# No-one should depend on this but :desugared_java8_legacy_libs above +exports_files(["desugar_jdk_libs.jar"], + visibility = ["//visibility:private"], +) + +# Mirrors @<repo>//:dx_binary generated by android_sdk_repository rule without +# needing the SDK repo's name (typically @androidsdk but not required). +java_binary( + name = "dexer", + main_class = "com.android.dx.command.Main", + runtime_deps = ["//external:android/dx_jar_import"], + visibility = ["//visibility:private"], +) + alias( name = "IdlClass", actual = "//src/tools/android/java/com/google/devtools/build/android/idlclass:IdlClass", |