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