blob: c3605a9ffaa5f2d383d401f7e48bd0022d8fdef7 [file] [log] [blame]
Makoto Onuki8558e9a2023-08-31 10:48:38 -07001#!/bin/bash
2# Copyright (C) 2023 The Android Open Source Project
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16
17# Script to build hoststubgen and run it directly (without using the build rules)
18# on framework-all.jar.
19
20
21echo "THIS SCRIPT IS BROKEN DUE TO CHANGES TO FILE PATHS TO DEPENDENT FILES. FIX IT WHEN YOU NEED TO USE IT." 1>&2
22
23exit 99
24
25
26source "${0%/*}"/../common.sh
27
28out=out
29
30mkdir -p $out
31
32# Build the tool and target jar.
33run m hoststubgen framework-all
34
35base_args=(
36 @../hoststubgen/hoststubgen-standard-options.txt
37
38 --in-jar $ANDROID_BUILD_TOP/out/soong/.intermediates/frameworks/base/framework-all/android_common/combined/framework-all.jar
39 --policy-override-file ../hoststubgen/framework-policy-override.txt "${@}"
40
41 # This file will contain all classes as an annotation file, with "keep all" policy.
42 --gen-keep-all-file $out/framework-all-keep-all-policy.txt
43
44 # This file will contains dump of all classes in the input jar.
45 --gen-input-dump-file $out/framework-all-dump.txt
46)
47
48do_it() {
49 local out_file_stem="$1"
50 shift
51 local extra_args=("${@}")
52
53 run hoststubgen \
54 "${base_args[@]}" \
55 "${extra_args[@]}" \
56 --out-stub-jar ${out_file_stem}_stub.jar \
57 --out-impl-jar ${out_file_stem}_impl.jar \
58 $HOSTSTUBGEN_OPTS
59
60 # Extract the jar files, so we can look into them.
61 run extract ${out_file_stem}_*.jar
62}
63
64#-----------------------------------------------------------------------------
65# framework-all, with all hidden APIs.
66#-----------------------------------------------------------------------------
67
68# No extra args.
69do_it $out/framework-all_host
70
71#-----------------------------------------------------------------------------
72# framework-test-api, only public/system/test-APIs in the stub.
73#-----------------------------------------------------------------------------
74
75do_it $out/framework-test-api_host \
76 --intersect-stub-jar $SOONG_INT/frameworks/base/api/android_test_stubs_current/android_common/combined/*.jar