aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/android/BUILD.tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools/android/BUILD.tools')
-rw-r--r--tools/android/BUILD.tools98
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",