| // Copyright (C) 2023 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. | 
 |  | 
 | // 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"], | 
 | } | 
 |  | 
 | // Generate the stub/impl from framework-all, with hidden APIs. | 
 | java_genrule { | 
 |     name: "framework-minus-apex.ravenwood-base", | 
 |     tools: ["hoststubgen"], | 
 |     cmd: "$(location hoststubgen) " + | 
 |         "@$(location ravenwood/ravenwood-standard-options.txt) " + | 
 |  | 
 |         "--debug-log $(location hoststubgen_framework-minus-apex.log) " + | 
 |  | 
 |         "--out-impl-jar $(location ravenwood.jar) " + | 
 |  | 
 |         "--gen-keep-all-file $(location hoststubgen_keep_all.txt) " + | 
 |         "--gen-input-dump-file $(location hoststubgen_dump.txt) " + | 
 |  | 
 |         "--in-jar $(location :framework-minus-apex-for-hoststubgen) " + | 
 |         "--policy-override-file $(location ravenwood/framework-minus-apex-ravenwood-policies.txt) " + | 
 |         "--annotation-allowed-classes-file $(location ravenwood/ravenwood-annotation-allowed-classes.txt) ", | 
 |     srcs: [ | 
 |         ":framework-minus-apex-for-hoststubgen", | 
 |         "ravenwood/framework-minus-apex-ravenwood-policies.txt", | 
 |         "ravenwood/ravenwood-standard-options.txt", | 
 |         "ravenwood/ravenwood-annotation-allowed-classes.txt", | 
 |     ], | 
 |     out: [ | 
 |         "ravenwood.jar", | 
 |  | 
 |         // Following files are created just as FYI. | 
 |         "hoststubgen_keep_all.txt", | 
 |         "hoststubgen_dump.txt", | 
 |  | 
 |         "hoststubgen_framework-minus-apex.log", | 
 |     ], | 
 |     visibility: ["//visibility:private"], | 
 | } | 
 |  | 
 | // Extract the impl jar from "framework-minus-apex.ravenwood-base" for subsequent build rules. | 
 | // Note this emits a "device side" output, so that ravenwood tests can (implicitly) | 
 | // depend on it. | 
 | java_genrule { | 
 |     name: "framework-minus-apex.ravenwood", | 
 |     defaults: ["ravenwood-internal-only-visibility-genrule"], | 
 |     cmd: "cp $(in) $(out)", | 
 |     srcs: [ | 
 |         ":framework-minus-apex.ravenwood-base{ravenwood.jar}", | 
 |     ], | 
 |     out: [ | 
 |         "framework-minus-apex.ravenwood.jar", | 
 |     ], | 
 | } | 
 |  | 
 | android_ravenwood_libgroup { | 
 |     name: "ravenwood-runtime", | 
 |     libs: [ | 
 |         "framework-minus-apex.ravenwood", | 
 |         "hoststubgen-helper-runtime.ravenwood", | 
 |         "hoststubgen-helper-framework-runtime.ravenwood", | 
 |         "junit", | 
 |         "truth", | 
 |         "ravenwood-junit-impl", | 
 |         "android.test.mock.ravenwood", | 
 |     ], | 
 | } | 
 |  | 
 | android_ravenwood_libgroup { | 
 |     name: "ravenwood-utils", | 
 |     libs: [ | 
 |         "junit", | 
 |         "truth", | 
 |         "ravenwood-junit", | 
 |     ], | 
 | } |