blob: d573be9650e55b7811c31545694ef5cdd5955ba5 [file] [log] [blame]
Colin Cross88e05902018-06-05 14:06:39 -07001// Copyright (C) 2018 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badour0d71f662021-02-12 15:51:13 -080015package {
16 default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
Makoto Onukif2833f82020-06-02 14:00:38 -070019java_binary_host {
Colin Cross88e05902018-06-05 14:06:39 -070020 name: "metalava",
21 srcs: [
22 "src/main/java/**/*.java",
23 "src/main/java/**/*.kt",
24 ],
Jeff Gastonfcc3deb2019-01-22 15:51:32 -050025 java_resource_dirs: ["src/main/resources/"],
Colin Cross88e05902018-06-05 14:06:39 -070026 static_libs: [
Aurimas Liutikas32795022022-02-04 16:01:32 -080027 "jsr305",
28 "jsr330",
Colin Cross706dfa12018-06-05 17:25:31 -070029 "kotlin-reflect",
Colin Cross88e05902018-06-05 14:06:39 -070030 "metalava-tools-common-m2-deps",
31 "metalava-gradle-plugin-deps",
32 ],
33 manifest: "manifest.txt",
Paul Duffin56343d62019-05-15 11:26:56 +010034 target: {
35 host: {
36 dist: {
37 targets: ["sdk"],
38 },
39 },
Jaewoong Jung07790ac2019-01-09 10:21:57 -080040 },
Makoto Onukif2833f82020-06-02 14:00:38 -070041 visibility: [
42 // Metalava is linked by //vendor/xts/gts-tests/hostsidetests/api, but because it's a
43 // make project, soong's visibility won't apply. Soong also won't let you specify a
44 // subpackage of //vendor/ here. So let's just make it private.
45 // When //vendor/xts/gts-tests/hostsidetests/api migrates to Android.bp, we need to
46 // open metalava to //vendor:__subpackages__.
47 "//visibility:private",
48 ],
Colin Cross88e05902018-06-05 14:06:39 -070049}
Nan Zhangc6a42652018-06-06 16:51:05 -070050
Nan Zhang15b36592018-06-15 11:52:33 -070051java_library {
Nan Zhangc6a42652018-06-06 16:51:05 -070052 name: "stub-annotations",
Nan Zhang15b36592018-06-15 11:52:33 -070053 host_supported: true,
Nan Zhangc6a42652018-06-06 16:51:05 -070054 srcs: [
55 "stub-annotations/src/main/java/**/*.java",
56 ],
Paul Duffinb461b1e2019-10-17 11:03:07 +010057 // Allow core_current to use stub-annotations.
58 sdk_version: "28",
Jaewoong Jung07790ac2019-01-09 10:21:57 -080059 target: {
60 host: {
61 dist: {
62 targets: ["sdk"],
63 },
64 },
65 },
Nan Zhangc6a42652018-06-06 16:51:05 -070066}
Nan Zhang0006ae22018-07-13 16:33:51 -070067
68genrule {
69 name: "private-stub-annotations",
70 tools: [
71 "soong_zip",
72 "metalava",
73 ],
74 srcs: [
75 "stub-annotations/src/main/java/**/*.java",
76 ],
77 cmd: "($(location metalava) --no-banner --copy-annotations tools/metalava/stub-annotations " +
Jaewoong Jung07790ac2019-01-09 10:21:57 -080078 "$(genDir)/private-stub-annotations) && ($(location soong_zip) -o $(out) -C $(genDir) -D $(genDir))",
Nan Zhang0006ae22018-07-13 16:33:51 -070079 out: [
80 "private-stub-annotations.srcjar",
81 ],
82}
83
84java_library {
85 name: "private-stub-annotations-jar",
86 host_supported: true,
87 srcs: [
88 ":private-stub-annotations",
89 ],
Neil Fullerf46a78e2018-09-26 17:11:13 +010090 sdk_version: "core_current",
Colin Cross6add4d42020-07-30 14:50:44 -070091 // private-stub-annotations-jar ends up in android.jar in the SDK and should
92 // use -target 8.
93 java_version: "1.8",
Nan Zhang0006ae22018-07-13 16:33:51 -070094}
Nan Zhang300968c2018-08-01 15:06:55 -070095
96droiddoc_exported_dir {
97 name: "metalava-manual",
98 path: "manual",
99}