diff options
author | 2024-10-10 21:58:26 +0000 | |
---|---|---|
committer | 2024-10-10 21:58:26 +0000 | |
commit | 2abff41f90587da589a1922866fb9caa39d702ef (patch) | |
tree | 67deda8dbd0e7f76801c0452a3018f24f1c2ec48 | |
parent | b1815bd8ce061386eeca68a04bc9e6ccaaaf61ee (diff) |
[Ravenwood] Move Ravenwood processing out of individual repos
Move all Ravenwood specific bytecode post-processing steps outside of
individual repo/modules and move it to f/b/ravenwood.
Flag: EXEMPT host test change only
Bug: 292141694
Test: $ANDROID_BUILD_TOP/frameworks/base/ravenwood/scripts/run-ravenwood-tests.sh
Change-Id: I8f7a30a0da970dea0d400844b577cf3595e77943
-rw-r--r-- | Android.bp | 6 | ||||
-rw-r--r-- | Ravenwood.bp | 255 | ||||
-rw-r--r-- | ravenwood/Android.bp | 36 | ||||
-rw-r--r-- | ravenwood/Framework.bp | 290 |
4 files changed, 331 insertions, 256 deletions
diff --git a/Android.bp b/Android.bp index 5b6e65c6e4bd..b114898f3887 100644 --- a/Android.bp +++ b/Android.bp @@ -168,12 +168,6 @@ java_library { //same purpose. "//external/robolectric:__subpackages__", "//frameworks/layoutlib:__subpackages__", - - // This is for the same purpose as robolectric -- to build "framework.jar" for host-side - // testing. - // TODO: Once Ravenwood is stable, move the host side jar targets to this directory, - // and remove this line. - "//frameworks/base/tools/hoststubgen:__subpackages__", ], } diff --git a/Ravenwood.bp b/Ravenwood.bp index ec58210e1e3b..2e038e00bb35 100644 --- a/Ravenwood.bp +++ b/Ravenwood.bp @@ -12,256 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. -// We need this "trampoline" rule to force soong to give a host-side jar to -// framework-minus-apex.ravenwood-base. Otherwise, soong would mix up the arch (?) and we'd get -// a dex jar. -java_library { - name: "framework-minus-apex-for-hoststubgen", - installable: false, // host only jar. - static_libs: [ - "framework-minus-apex", - ], - sdk_version: "core_platform", - visibility: ["//visibility:private"], -} - -// Process framework-all with hoststubgen for Ravenwood. -// This step takes several tens of seconds, so we manually shard it to multiple modules. -// All the copies have to be kept in sync. -// TODO: Do the sharding better, either by making hostsubgen support sharding natively, or -// making a better build rule. - -genrule_defaults { - name: "framework-minus-apex.ravenwood-base_defaults", - defaults: ["ravenwood-internal-only-visibility-genrule"], - tools: ["hoststubgen"], - srcs: [ - ":framework-minus-apex-for-hoststubgen", - ":ravenwood-framework-policies", - ":ravenwood-standard-options", - ":ravenwood-annotation-allowed-classes", - ], - out: [ - "ravenwood.jar", - "hoststubgen_framework-minus-apex.log", - ], -} - -framework_minus_apex_cmd = "$(location hoststubgen) " + - "@$(location :ravenwood-standard-options) " + - "--debug-log $(location hoststubgen_framework-minus-apex.log) " + - "--out-jar $(location ravenwood.jar) " + - "--in-jar $(location :framework-minus-apex-for-hoststubgen) " + - "--policy-override-file $(location :ravenwood-framework-policies) " + - "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) " - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X0", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 0", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X1", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 1", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X2", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 2", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X3", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 3", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X4", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 4", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X5", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 5", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X6", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 6", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X7", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 7", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X8", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 8", -} - -java_genrule { - name: "framework-minus-apex.ravenwood-base_X9", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 9", -} - -// Build framework-minus-apex.ravenwood-base without sharding. -// We extract the various dump files from this one, rather than the sharded ones, because -// some dumps use the output from other classes (e.g. base classes) which may not be in the -// same shard. Also some of the dump files ("apis") may be slow even when sharded, because -// the output contains the information from all the input classes, rather than the output classes. -// Not using sharding is fine for this module because it's only used for collecting the -// dump / stats files, which don't have to happen regularly. -java_genrule { - name: "framework-minus-apex.ravenwood-base_all", - defaults: ["framework-minus-apex.ravenwood-base_defaults"], - cmd: framework_minus_apex_cmd + - "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " + - "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " + - - "--gen-keep-all-file $(location hoststubgen_framework-minus-apex_keep_all.txt) " + - "--gen-input-dump-file $(location hoststubgen_framework-minus-apex_dump.txt) ", - - out: [ - "hoststubgen_framework-minus-apex_keep_all.txt", - "hoststubgen_framework-minus-apex_dump.txt", - "hoststubgen_framework-minus-apex_stats.csv", - "hoststubgen_framework-minus-apex_apis.csv", - ], -} - -// Marge all the sharded jars -java_genrule { - name: "framework-minus-apex.ravenwood", - defaults: ["ravenwood-internal-only-visibility-java"], - cmd: "$(location merge_zips) $(out) $(in)", - tools: ["merge_zips"], - srcs: [ - ":framework-minus-apex.ravenwood-base_X0{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X1{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X2{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X3{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X4{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X5{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X6{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X7{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X8{ravenwood.jar}", - ":framework-minus-apex.ravenwood-base_X9{ravenwood.jar}", - ], - out: [ - "framework-minus-apex.ravenwood.jar", - ], -} +// "framework-minus-apex" and "all-updatable-modules-system-stubs" are not +// visible publicly. We re-export them to Ravenwood in this file. java_library { - name: "services.core-for-hoststubgen", - installable: false, // host only jar. - static_libs: [ - "services.core", - ], - sdk_version: "core_platform", - visibility: ["//visibility:private"], -} - -java_genrule { - name: "services.core.ravenwood-base", - tools: ["hoststubgen"], - cmd: "$(location hoststubgen) " + - "@$(location :ravenwood-standard-options) " + - - "--debug-log $(location hoststubgen_services.core.log) " + - "--stats-file $(location hoststubgen_services.core_stats.csv) " + - "--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " + - - "--out-jar $(location ravenwood.jar) " + - - "--gen-keep-all-file $(location hoststubgen_services.core_keep_all.txt) " + - "--gen-input-dump-file $(location hoststubgen_services.core_dump.txt) " + - - "--in-jar $(location :services.core-for-hoststubgen) " + - "--policy-override-file $(location :ravenwood-services-policies) " + - "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ", - srcs: [ - ":services.core-for-hoststubgen", - ":ravenwood-services-policies", - ":ravenwood-standard-options", - ":ravenwood-annotation-allowed-classes", - ], - out: [ - "ravenwood.jar", - - // Following files are created just as FYI. - "hoststubgen_services.core_keep_all.txt", - "hoststubgen_services.core_dump.txt", - - "hoststubgen_services.core.log", - "hoststubgen_services.core_stats.csv", - "hoststubgen_services.core_apis.csv", - ], - defaults: ["ravenwood-internal-only-visibility-genrule"], -} - -java_genrule { - name: "services.core.ravenwood", - defaults: ["ravenwood-internal-only-visibility-genrule"], - cmd: "cp $(in) $(out)", - srcs: [ - ":services.core.ravenwood-base{ravenwood.jar}", - ], - out: [ - "services.core.ravenwood.jar", - ], -} - -// TODO(b/313930116) This jarjar is a bit slow. We should use hoststubgen for renaming, -// but services.core.ravenwood has complex dependencies, so it'll take more than -// just using hoststubgen "rename"s. -java_library { - name: "services.core.ravenwood-jarjar", - defaults: ["ravenwood-internal-only-visibility-java"], + name: "framework-minus-apex-for-host", installable: false, - static_libs: [ - "services.core.ravenwood", - ], - jarjar_rules: ":ravenwood-services-jarjar-rules", + static_libs: ["framework-minus-apex"], + visibility: ["//frameworks/base/ravenwood"], } -// Jars in "ravenwood-runtime" are set to the classpath, sorted alphabetically. -// Rename some of the dependencies to make sure they're included in the intended order. java_library { - name: "100-framework-minus-apex.ravenwood", - defaults: ["ravenwood-internal-only-visibility-java"], - static_libs: [ - "framework-minus-apex.ravenwood", - ], - sdk_version: "core_platform", - // See b/313930116. Jarjar is too slow on this jar. We use HostStubGen to do the rename. - // jarjar_rules: ":ravenwood-framework-jarjar-rules", -} - -java_genrule { - // Use 200 to make sure it comes before the mainline stub ("all-updatable..."). - name: "200-kxml2-android", - defaults: ["ravenwood-internal-only-visibility-genrule"], - cmd: "cp $(in) $(out)", - srcs: [":kxml2-android"], - out: ["200-kxml2-android.jar"], -} - -java_genrule { - name: "z00-all-updatable-modules-system-stubs", - defaults: ["ravenwood-internal-only-visibility-genrule"], - cmd: "cp $(in) $(out)", - srcs: [":all-updatable-modules-system-stubs"], - out: ["z00-all-updatable-modules-system-stubs.jar"], + name: "all-updatable-modules-system-stubs-for-host", + installable: false, + static_libs: ["all-updatable-modules-system-stubs"], + visibility: ["//frameworks/base/ravenwood"], } diff --git a/ravenwood/Android.bp b/ravenwood/Android.bp index 11b66fc3f1e5..0cf9ff0ab3b5 100644 --- a/ravenwood/Android.bp +++ b/ravenwood/Android.bp @@ -16,7 +16,7 @@ filegroup { srcs: [ "texts/ravenwood-services-policies.txt", ], - visibility: ["//visibility:public"], + visibility: ["//visibility:private"], } filegroup { @@ -24,7 +24,7 @@ filegroup { srcs: [ "texts/ravenwood-framework-policies.txt", ], - visibility: ["//visibility:public"], + visibility: ["//visibility:private"], } filegroup { @@ -32,7 +32,7 @@ filegroup { srcs: [ "texts/ravenwood-standard-options.txt", ], - visibility: ["//visibility:public"], + visibility: ["//visibility:private"], } filegroup { @@ -40,7 +40,7 @@ filegroup { srcs: [ "texts/ravenwood-annotation-allowed-classes.txt", ], - visibility: ["//visibility:public"], + visibility: ["//visibility:private"], } // This and the next module contain the same classes with different implementations. @@ -335,6 +335,30 @@ java_library { ], } +// JARs in "ravenwood-runtime" are set to the classpath, sorted alphabetically. +// Rename some of the dependencies to make sure they're included in the intended order. + +java_library { + name: "100-framework-minus-apex.ravenwood", + installable: false, + static_libs: ["framework-minus-apex.ravenwood"], + visibility: ["//visibility:private"], +} + +java_library { + name: "200-kxml2-android", + installable: false, + static_libs: ["kxml2-android"], + visibility: ["//visibility:private"], +} + +java_library { + name: "z00-all-updatable-modules-system-stubs", + installable: false, + static_libs: ["all-updatable-modules-system-stubs-for-host"], + visibility: ["//visibility:private"], +} + android_ravenwood_libgroup { name: "ravenwood-runtime", data: [ @@ -393,3 +417,7 @@ android_ravenwood_libgroup { "inline-mockito-ravenwood-prebuilt", ], } + +build = [ + "Framework.bp", +] diff --git a/ravenwood/Framework.bp b/ravenwood/Framework.bp new file mode 100644 index 000000000000..07b453431751 --- /dev/null +++ b/ravenwood/Framework.bp @@ -0,0 +1,290 @@ +// Copyright (C) 2024 The Android Open Source Project +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// This file hosts all the genrule and module definitions for all Android specific +// code that needs further post-processing by hoststubgen to support Ravenwood. + +///////////////////////// +// framework-minus-apex +///////////////////////// + +// Process framework-minus-apex with hoststubgen for Ravenwood. +// This step takes several tens of seconds, so we manually shard it to multiple modules. +// All the copies have to be kept in sync. +// TODO: Do the sharding better, either by making hostsubgen support sharding natively, or +// making a better build rule. + +genrule_defaults { + name: "framework-minus-apex.ravenwood-base_defaults", + tools: ["hoststubgen"], + srcs: [ + ":framework-minus-apex-for-host", + ":ravenwood-framework-policies", + ":ravenwood-standard-options", + ":ravenwood-annotation-allowed-classes", + ], + out: [ + "ravenwood.jar", + "hoststubgen_framework-minus-apex.log", + ], + visibility: ["//visibility:private"], +} + +framework_minus_apex_cmd = "$(location hoststubgen) " + + "@$(location :ravenwood-standard-options) " + + "--debug-log $(location hoststubgen_framework-minus-apex.log) " + + "--out-jar $(location ravenwood.jar) " + + "--in-jar $(location :framework-minus-apex-for-host) " + + "--policy-override-file $(location :ravenwood-framework-policies) " + + "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) " + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X0", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 0", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X1", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 1", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X2", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 2", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X3", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 3", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X4", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 4", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X5", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 5", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X6", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 6", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X7", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 7", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X8", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 8", +} + +java_genrule { + name: "framework-minus-apex.ravenwood-base_X9", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + " --num-shards 10 --shard-index 9", +} + +// Build framework-minus-apex.ravenwood-base without sharding. +// We extract the various dump files from this one, rather than the sharded ones, because +// some dumps use the output from other classes (e.g. base classes) which may not be in the +// same shard. Also some of the dump files ("apis") may be slow even when sharded, because +// the output contains the information from all the input classes, rather than the output classes. +// Not using sharding is fine for this module because it's only used for collecting the +// dump / stats files, which don't have to happen regularly. +java_genrule { + name: "framework-minus-apex.ravenwood-base_all", + defaults: ["framework-minus-apex.ravenwood-base_defaults"], + cmd: framework_minus_apex_cmd + + "--stats-file $(location hoststubgen_framework-minus-apex_stats.csv) " + + "--supported-api-list-file $(location hoststubgen_framework-minus-apex_apis.csv) " + + + "--gen-keep-all-file $(location hoststubgen_framework-minus-apex_keep_all.txt) " + + "--gen-input-dump-file $(location hoststubgen_framework-minus-apex_dump.txt) ", + + out: [ + "hoststubgen_framework-minus-apex_keep_all.txt", + "hoststubgen_framework-minus-apex_dump.txt", + "hoststubgen_framework-minus-apex_stats.csv", + "hoststubgen_framework-minus-apex_apis.csv", + ], +} + +// Marge all the sharded jars +java_genrule { + name: "framework-minus-apex.ravenwood", + defaults: ["ravenwood-internal-only-visibility-java"], + cmd: "$(location merge_zips) $(out) $(in)", + tools: ["merge_zips"], + srcs: [ + ":framework-minus-apex.ravenwood-base_X0{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X1{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X2{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X3{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X4{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X5{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X6{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X7{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X8{ravenwood.jar}", + ":framework-minus-apex.ravenwood-base_X9{ravenwood.jar}", + ], + out: [ + "framework-minus-apex.ravenwood.jar", + ], +} + +////////////////// +// services.core +////////////////// + +java_library { + name: "services.core-for-host", + installable: false, // host only jar. + static_libs: [ + "services.core", + ], + sdk_version: "core_platform", + visibility: ["//visibility:private"], +} + +java_genrule { + name: "services.core.ravenwood-base", + tools: ["hoststubgen"], + cmd: "$(location hoststubgen) " + + "@$(location :ravenwood-standard-options) " + + + "--debug-log $(location hoststubgen_services.core.log) " + + "--stats-file $(location hoststubgen_services.core_stats.csv) " + + "--supported-api-list-file $(location hoststubgen_services.core_apis.csv) " + + + "--out-jar $(location ravenwood.jar) " + + + "--gen-keep-all-file $(location hoststubgen_services.core_keep_all.txt) " + + "--gen-input-dump-file $(location hoststubgen_services.core_dump.txt) " + + + "--in-jar $(location :services.core-for-host) " + + "--policy-override-file $(location :ravenwood-services-policies) " + + "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ", + srcs: [ + ":services.core-for-host", + ":ravenwood-services-policies", + ":ravenwood-standard-options", + ":ravenwood-annotation-allowed-classes", + ], + out: [ + "ravenwood.jar", + + // Following files are created just as FYI. + "hoststubgen_services.core_keep_all.txt", + "hoststubgen_services.core_dump.txt", + + "hoststubgen_services.core.log", + "hoststubgen_services.core_stats.csv", + "hoststubgen_services.core_apis.csv", + ], + visibility: ["//visibility:private"], +} + +java_genrule { + name: "services.core.ravenwood", + defaults: ["ravenwood-internal-only-visibility-genrule"], + cmd: "cp $(in) $(out)", + srcs: [ + ":services.core.ravenwood-base{ravenwood.jar}", + ], + out: [ + "services.core.ravenwood.jar", + ], +} + +// TODO(b/313930116) This jarjar is a bit slow. We should use hoststubgen for renaming, +// but services.core.ravenwood has complex dependencies, so it'll take more than +// just using hoststubgen "rename"s. +java_library { + name: "services.core.ravenwood-jarjar", + defaults: ["ravenwood-internal-only-visibility-java"], + installable: false, + static_libs: [ + "services.core.ravenwood", + ], + jarjar_rules: ":ravenwood-services-jarjar-rules", +} + +/////////////// +// core-icu4j +/////////////// + +java_genrule { + name: "core-icu4j-for-host.ravenwood-base", + tools: ["hoststubgen"], + cmd: "$(location hoststubgen) " + + "@$(location :ravenwood-standard-options) " + + + "--debug-log $(location hoststubgen_core-icu4j-for-host.log) " + + "--stats-file $(location hoststubgen_core-icu4j-for-host_stats.csv) " + + "--supported-api-list-file $(location hoststubgen_core-icu4j-for-host_apis.csv) " + + + "--out-jar $(location ravenwood.jar) " + + + "--gen-keep-all-file $(location hoststubgen_core-icu4j-for-host_keep_all.txt) " + + "--gen-input-dump-file $(location hoststubgen_core-icu4j-for-host_dump.txt) " + + + "--in-jar $(location :core-icu4j-for-host) " + + "--policy-override-file $(location :icu-ravenwood-policies) " + + "--annotation-allowed-classes-file $(location :ravenwood-annotation-allowed-classes) ", + srcs: [ + ":core-icu4j-for-host", + + ":icu-ravenwood-policies", + ":ravenwood-standard-options", + ":ravenwood-annotation-allowed-classes", + ], + out: [ + "ravenwood.jar", + + // Following files are created just as FYI. + "hoststubgen_core-icu4j-for-host_keep_all.txt", + "hoststubgen_core-icu4j-for-host_dump.txt", + + "hoststubgen_core-icu4j-for-host.log", + "hoststubgen_core-icu4j-for-host_stats.csv", + "hoststubgen_core-icu4j-for-host_apis.csv", + ], + visibility: ["//visibility:private"], +} + +java_genrule { + name: "core-icu4j-for-host.ravenwood", + defaults: ["ravenwood-internal-only-visibility-genrule"], + cmd: "cp $(in) $(out)", + srcs: [ + ":core-icu4j-for-host.ravenwood-base{ravenwood.jar}", + ], + out: [ + "core-icu4j-for-host.ravenwood.jar", + ], +} |