// Copyright (C) 2018 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. package { default_applicable_licenses: ["Android-Apache-2.0"], } java_binary_host { name: "metalava", srcs: [ "src/main/java/**/*.java", "src/main/java/**/*.kt", ], java_resource_dirs: ["src/main/resources/"], static_libs: [ "jsr305", "jsr330", "kotlin-reflect", "metalava-tools-common-m2-deps", "metalava-gradle-plugin-deps", ], main_class: "com.android.tools.metalava.Driver", target: { host: { dist: { targets: ["sdk"], }, }, }, visibility: [ // Metalava is linked by //vendor/xts/gts-tests/hostsidetests/api, but because it's a // make project, soong's visibility won't apply. Soong also won't let you specify a // subpackage of //vendor/ here. So let's just make it private. // When //vendor/xts/gts-tests/hostsidetests/api migrates to Android.bp, we need to // open metalava to //vendor:__subpackages__. "//visibility:private", ], } java_library { name: "stub-annotations", host_supported: true, srcs: [ "stub-annotations/src/main/java/**/*.java", ], // Allow core_current to use stub-annotations. sdk_version: "28", target: { host: { dist: { targets: ["sdk"], }, }, }, } genrule { name: "private-stub-annotations", tools: [ "soong_zip", "metalava", ], srcs: [ "stub-annotations/src/main/java/**/*.java", ], cmd: "($(location metalava) --no-banner --copy-annotations tools/metalava/stub-annotations " + "$(genDir)/private-stub-annotations) && ($(location soong_zip) -o $(out) -C $(genDir) -D $(genDir))", out: [ "private-stub-annotations.srcjar", ], } java_library { name: "private-stub-annotations-jar", host_supported: true, srcs: [ ":private-stub-annotations", ], sdk_version: "core_current", // private-stub-annotations-jar ends up in android.jar in the SDK and should // use -target 8. java_version: "1.8", } droiddoc_exported_dir { name: "metalava-manual", path: "manual", }