|  | #!/bin/bash | 
|  | # 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. | 
|  |  | 
|  |  | 
|  | # Script to build hoststubgen and run it directly (without using the build rules) | 
|  | # on framework-all.jar. | 
|  |  | 
|  |  | 
|  | echo "THIS SCRIPT IS BROKEN DUE TO CHANGES TO FILE PATHS TO DEPENDENT FILES. FIX IT WHEN YOU NEED TO USE IT." 1>&2 | 
|  |  | 
|  | exit 99 | 
|  |  | 
|  |  | 
|  | source "${0%/*}"/../common.sh | 
|  |  | 
|  | out=out | 
|  |  | 
|  | mkdir -p $out | 
|  |  | 
|  | # Build the tool and target jar. | 
|  | run m hoststubgen framework-all | 
|  |  | 
|  | base_args=( | 
|  | @../hoststubgen/hoststubgen-standard-options.txt | 
|  |  | 
|  | --in-jar $ANDROID_BUILD_TOP/out/soong/.intermediates/frameworks/base/framework-all/android_common/combined/framework-all.jar | 
|  | --policy-override-file ../hoststubgen/framework-policy-override.txt "${@}" | 
|  |  | 
|  | # This file will contain all classes as an annotation file, with "keep all" policy. | 
|  | --gen-keep-all-file $out/framework-all-keep-all-policy.txt | 
|  |  | 
|  | # This file will contains dump of all classes in the input jar. | 
|  | --gen-input-dump-file $out/framework-all-dump.txt | 
|  | ) | 
|  |  | 
|  | do_it() { | 
|  | local out_file_stem="$1" | 
|  | shift | 
|  | local extra_args=("${@}") | 
|  |  | 
|  | run hoststubgen \ | 
|  | "${base_args[@]}" \ | 
|  | "${extra_args[@]}" \ | 
|  | --out-stub-jar ${out_file_stem}_stub.jar \ | 
|  | --out-impl-jar ${out_file_stem}_impl.jar \ | 
|  | $HOSTSTUBGEN_OPTS | 
|  |  | 
|  | # Extract the jar files, so we can look into them. | 
|  | run extract ${out_file_stem}_*.jar | 
|  | } | 
|  |  | 
|  | #----------------------------------------------------------------------------- | 
|  | # framework-all, with all hidden APIs. | 
|  | #----------------------------------------------------------------------------- | 
|  |  | 
|  | # No extra args. | 
|  | do_it $out/framework-all_host | 
|  |  | 
|  | #----------------------------------------------------------------------------- | 
|  | # framework-test-api, only public/system/test-APIs in the stub. | 
|  | #----------------------------------------------------------------------------- | 
|  |  | 
|  | do_it $out/framework-test-api_host \ | 
|  | --intersect-stub-jar $SOONG_INT/frameworks/base/api/android_test_stubs_current/android_common/combined/*.jar |