xref: /aosp_15_r20/build/soong/java/config/droidstubs.go (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
1*333d2b36SAndroid Build Coastguard Worker// Copyright 2023 Google Inc. All rights reserved.
2*333d2b36SAndroid Build Coastguard Worker//
3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*333d2b36SAndroid Build Coastguard Worker//
7*333d2b36SAndroid Build Coastguard Worker//     http://www.apache.org/licenses/LICENSE-2.0
8*333d2b36SAndroid Build Coastguard Worker//
9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*333d2b36SAndroid Build Coastguard Worker// limitations under the License.
14*333d2b36SAndroid Build Coastguard Worker
15*333d2b36SAndroid Build Coastguard Workerpackage config
16*333d2b36SAndroid Build Coastguard Worker
17*333d2b36SAndroid Build Coastguard Workerimport "strings"
18*333d2b36SAndroid Build Coastguard Worker
19*333d2b36SAndroid Build Coastguard Workervar (
20*333d2b36SAndroid Build Coastguard Worker	metalavaFlags = []string{
21*333d2b36SAndroid Build Coastguard Worker		"--color",
22*333d2b36SAndroid Build Coastguard Worker		"--quiet",
23*333d2b36SAndroid Build Coastguard Worker		"--format=v2",
24*333d2b36SAndroid Build Coastguard Worker		"--repeat-errors-max 10",
25*333d2b36SAndroid Build Coastguard Worker		"--hide UnresolvedImport",
26*333d2b36SAndroid Build Coastguard Worker
27*333d2b36SAndroid Build Coastguard Worker		// Force metalava to ignore classes on the classpath when an API file contains missing classes.
28*333d2b36SAndroid Build Coastguard Worker		// See b/285140653 for more information.
29*333d2b36SAndroid Build Coastguard Worker		"--api-class-resolution api",
30*333d2b36SAndroid Build Coastguard Worker
31*333d2b36SAndroid Build Coastguard Worker		// Force metalava to sort overloaded methods by their order in the source code.
32*333d2b36SAndroid Build Coastguard Worker		// See b/285312164 for more information.
33*333d2b36SAndroid Build Coastguard Worker		// And add concrete overrides of abstract methods, see b/299366704 for more
34*333d2b36SAndroid Build Coastguard Worker		// information.
35*333d2b36SAndroid Build Coastguard Worker		"--format-defaults overloaded-method-order=source,add-additional-overrides=yes",
36*333d2b36SAndroid Build Coastguard Worker	}
37*333d2b36SAndroid Build Coastguard Worker
38*333d2b36SAndroid Build Coastguard Worker	MetalavaFlags = strings.Join(metalavaFlags, " ")
39*333d2b36SAndroid Build Coastguard Worker
40*333d2b36SAndroid Build Coastguard Worker	metalavaAnnotationsFlags = []string{
41*333d2b36SAndroid Build Coastguard Worker		"--include-annotations",
42*333d2b36SAndroid Build Coastguard Worker		"--exclude-annotation androidx.annotation.RequiresApi",
43*333d2b36SAndroid Build Coastguard Worker	}
44*333d2b36SAndroid Build Coastguard Worker
45*333d2b36SAndroid Build Coastguard Worker	MetalavaAnnotationsFlags = strings.Join(metalavaAnnotationsFlags, " ")
46*333d2b36SAndroid Build Coastguard Worker
47*333d2b36SAndroid Build Coastguard Worker	metalavaAnnotationsWarningsFlags = []string{
48*333d2b36SAndroid Build Coastguard Worker		// TODO(tnorbye): find owners to fix these warnings when annotation was enabled.
49*333d2b36SAndroid Build Coastguard Worker		"--hide HiddenTypedefConstant",
50*333d2b36SAndroid Build Coastguard Worker		"--hide SuperfluousPrefix",
51*333d2b36SAndroid Build Coastguard Worker	}
52*333d2b36SAndroid Build Coastguard Worker
53*333d2b36SAndroid Build Coastguard Worker	MetalavaAnnotationsWarningsFlags = strings.Join(metalavaAnnotationsWarningsFlags, " ")
54*333d2b36SAndroid Build Coastguard Worker)
55*333d2b36SAndroid Build Coastguard Worker
56*333d2b36SAndroid Build Coastguard Workerconst (
57*333d2b36SAndroid Build Coastguard Worker	MetalavaAddOpens = "-J--add-opens=java.base/java.util=ALL-UNNAMED"
58*333d2b36SAndroid Build Coastguard Worker)
59*333d2b36SAndroid Build Coastguard Worker
60*333d2b36SAndroid Build Coastguard Workerfunc init() {
61*333d2b36SAndroid Build Coastguard Worker	pctx.StaticVariable("MetalavaAnnotationsFlags", strings.Join(metalavaAnnotationsFlags, " "))
62*333d2b36SAndroid Build Coastguard Worker
63*333d2b36SAndroid Build Coastguard Worker	pctx.StaticVariable("MetalavaAnnotationWarningsFlags", strings.Join(metalavaAnnotationsWarningsFlags, " "))
64*333d2b36SAndroid Build Coastguard Worker}
65