diff --git a/tools/check-flagged-apis/check-flagged-apis.sh b/tools/check-flagged-apis/check-flagged-apis.sh new file mode 100644 index 0000000000..ae671d1d5c --- /dev/null +++ b/tools/check-flagged-apis/check-flagged-apis.sh @@ -0,0 +1,69 @@ +# Copyright (C) 2024 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. + +# Run check-flagged-apis for public APIs and the three @SystemApi flavours +# Usage: lunch && source + +function build() { + m sdk dist && m \ + check-flagged-apis \ + all_aconfig_declarations \ + frameworks-base-api-current.txt \ + frameworks-base-api-system-current.txt \ + frameworks-base-api-system-server-current.txt \ + frameworks-base-api-module-lib-current.txt +} + +function run() { + local errors=0 + + echo "# current" + check-flagged-apis \ + --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-current.txt_intermediates/frameworks-base-api-current.txt \ + --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \ + --api-versions $(gettop)/out/dist/data/api-versions.xml + (( errors += $? )) + + echo + echo "# system-current" + check-flagged-apis \ + --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-system-current.txt_intermediates/frameworks-base-api-system-current.txt \ + --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \ + --api-versions $(gettop)/out/dist/system-data/api-versions.xml + (( errors += $? )) + + echo + echo "# system-server-current" + check-flagged-apis \ + --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-system-server-current.txt_intermediates/frameworks-base-api-system-server-current.txt \ + --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \ + --api-versions $(gettop)/out/dist/system-server-data/api-versions.xml + (( errors += $? )) + + echo + echo "# module-lib" + check-flagged-apis \ + --api-signature $(gettop)/out/target/product/mainline_x86/obj/ETC/frameworks-base-api-module-lib-current.txt_intermediates/frameworks-base-api-module-lib-current.txt \ + --flag-values $(gettop)/out/soong/.intermediates/all_aconfig_declarations.pb \ + --api-versions $(gettop)/out/dist/module-lib-data/api-versions.xml + (( errors += $? )) + + return $errors +} + +if [[ "$1" != "--skip-build" ]]; then + build && run +else + run +fi