xref: /aosp_15_r20/prebuilts/cmdline-tools/Android.bp (revision ec4b0377db3938a8cbcb4033b9a97789ce658793)
1*ec4b0377SAndroid Build Coastguard Workerpackage {
2*ec4b0377SAndroid Build Coastguard Worker    default_applicable_licenses: ["prebuilts_cmdline-tools_license"],
3*ec4b0377SAndroid Build Coastguard Worker}
4*ec4b0377SAndroid Build Coastguard Worker
5*ec4b0377SAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
6*ec4b0377SAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
7*ec4b0377SAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
8*ec4b0377SAndroid Build Coastguard Worker//
9*ec4b0377SAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
10*ec4b0377SAndroid Build Coastguard Worker//
11*ec4b0377SAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
12*ec4b0377SAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
13*ec4b0377SAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
14*ec4b0377SAndroid Build Coastguard Worker//
15*ec4b0377SAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
16*ec4b0377SAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
17*ec4b0377SAndroid Build Coastguard Worker// used in the current project.
18*ec4b0377SAndroid Build Coastguard Worker// See: http://go/android-license-faq
19*ec4b0377SAndroid Build Coastguard Workerlicense {
20*ec4b0377SAndroid Build Coastguard Worker    name: "prebuilts_cmdline-tools_license",
21*ec4b0377SAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
22*ec4b0377SAndroid Build Coastguard Worker    license_kinds: [
23*ec4b0377SAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
24*ec4b0377SAndroid Build Coastguard Worker        "SPDX-license-identifier-CDDL-1.0",
25*ec4b0377SAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL-2.0",
26*ec4b0377SAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
27*ec4b0377SAndroid Build Coastguard Worker    ],
28*ec4b0377SAndroid Build Coastguard Worker    license_text: [
29*ec4b0377SAndroid Build Coastguard Worker        "tools/NOTICE.txt",
30*ec4b0377SAndroid Build Coastguard Worker    ],
31*ec4b0377SAndroid Build Coastguard Worker}
32*ec4b0377SAndroid Build Coastguard Worker
33*ec4b0377SAndroid Build Coastguard Workerjava_import_host {
34*ec4b0377SAndroid Build Coastguard Worker    name: "lint_api",
35*ec4b0377SAndroid Build Coastguard Worker    jars: [
36*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/lint/tools.lint-api.jar",
37*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/lint/tools.lint-checks.jar",
38*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/common/tools.common.jar",
39*ec4b0377SAndroid Build Coastguard Worker
40*ec4b0377SAndroid Build Coastguard Worker        // A subset of the jars listed in MANIFEST.MF in
41*ec4b0377SAndroid Build Coastguard Worker        // tools/lib/lint-classpath.jar needed to provide dependencies
42*ec4b0377SAndroid Build Coastguard Worker        // of lint-api.jar and lint-checks.jar.
43*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar",
44*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/com/google/guava/guava/32.0.1-jre/guava-32.0.1-jre.jar",
45*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/lint-psi/intellij-core/intellij-core-mvn.jar",
46*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/lint-psi/kotlin-compiler/kotlin-compiler-mvn.jar",
47*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/lint-psi/uast/uast.jar",
48*ec4b0377SAndroid Build Coastguard Worker    ],
49*ec4b0377SAndroid Build Coastguard Worker}
50*ec4b0377SAndroid Build Coastguard Worker
51*ec4b0377SAndroid Build Coastguard Worker// The lint shell script in tools/bin/lint uses tools/lib/lint-classpath.jar as its classpath.
52*ec4b0377SAndroid Build Coastguard Worker// That jar contains a list of other jars that java adds to the classpath.  This makes it impossible
53*ec4b0377SAndroid Build Coastguard Worker// for the build system to track dependencies.
54*ec4b0377SAndroid Build Coastguard Worker// This genrule reads the jars from tools/lib/lint-classpath.jar and then merges them all together into
55*ec4b0377SAndroid Build Coastguard Worker// a single jar.  The result is then embedded into a self-contained java_binary.
56*ec4b0377SAndroid Build Coastguard Workerjava_genrule_host {
57*ec4b0377SAndroid Build Coastguard Worker    name: "lint-classpath",
58*ec4b0377SAndroid Build Coastguard Worker    srcs: [
59*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/lint-classpath.jar",
60*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/**/*.jar",
61*ec4b0377SAndroid Build Coastguard Worker    ],
62*ec4b0377SAndroid Build Coastguard Worker    out: [
63*ec4b0377SAndroid Build Coastguard Worker        "lint-classpath.jar",
64*ec4b0377SAndroid Build Coastguard Worker    ],
65*ec4b0377SAndroid Build Coastguard Worker    tools: [
66*ec4b0377SAndroid Build Coastguard Worker        "merge_zips",
67*ec4b0377SAndroid Build Coastguard Worker    ],
68*ec4b0377SAndroid Build Coastguard Worker    cmd: "unzip -pq $(location tools/lib/lint-classpath.jar) META-INF/MANIFEST.MF > $(genDir)/list && " +
69*ec4b0377SAndroid Build Coastguard Worker        "for jar in $$(grep '\\.jar' $(genDir)/list); do " +
70*ec4b0377SAndroid Build Coastguard Worker        " echo $$(dirname $(location tools/lib/lint-classpath.jar))/$${jar}; " +
71*ec4b0377SAndroid Build Coastguard Worker        "done > $(genDir)/jars && " +
72*ec4b0377SAndroid Build Coastguard Worker        "$(location merge_zips) -j -ignore-duplicates -stripFile 'META-INF/*.SF' -stripFile 'META-INF/*.DSA' $(out) $$(cat $(genDir)/jars)",
73*ec4b0377SAndroid Build Coastguard Worker}
74*ec4b0377SAndroid Build Coastguard Worker
75*ec4b0377SAndroid Build Coastguard Workerjava_binary_host {
76*ec4b0377SAndroid Build Coastguard Worker    name: "lint",
77*ec4b0377SAndroid Build Coastguard Worker    static_libs: ["lint-classpath"],
78*ec4b0377SAndroid Build Coastguard Worker    wrapper: "tools/bin/lint",
79*ec4b0377SAndroid Build Coastguard Worker}
80*ec4b0377SAndroid Build Coastguard Worker
81*ec4b0377SAndroid Build Coastguard Workerjava_genrule_host {
82*ec4b0377SAndroid Build Coastguard Worker    name: "resourceshrinker-classpath",
83*ec4b0377SAndroid Build Coastguard Worker    srcs: [
84*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/resourceshrinker-classpath.jar",
85*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/**/*.jar",
86*ec4b0377SAndroid Build Coastguard Worker        ":r8lib-prebuilt"
87*ec4b0377SAndroid Build Coastguard Worker    ],
88*ec4b0377SAndroid Build Coastguard Worker    out: [
89*ec4b0377SAndroid Build Coastguard Worker        "resourceshrinker-classpath.jar",
90*ec4b0377SAndroid Build Coastguard Worker    ],
91*ec4b0377SAndroid Build Coastguard Worker    tools: [
92*ec4b0377SAndroid Build Coastguard Worker        "merge_zips",
93*ec4b0377SAndroid Build Coastguard Worker    ],
94*ec4b0377SAndroid Build Coastguard Worker    // Use r8 from prebuilts/r8 instead of embedded version.
95*ec4b0377SAndroid Build Coastguard Worker    cmd: "unzip -pq $(location tools/lib/resourceshrinker-classpath.jar) META-INF/MANIFEST.MF | grep -v r8.jar > $(genDir)/list && " +
96*ec4b0377SAndroid Build Coastguard Worker        "for jar in $$(grep '\\.jar' $(genDir)/list); do " +
97*ec4b0377SAndroid Build Coastguard Worker        " echo $$(dirname $(location tools/lib/resourceshrinker-classpath.jar))/$${jar}; " +
98*ec4b0377SAndroid Build Coastguard Worker        "done > $(genDir)/jars && " +
99*ec4b0377SAndroid Build Coastguard Worker        "echo $(location :r8lib-prebuilt) >> $(genDir)/jars && " +
100*ec4b0377SAndroid Build Coastguard Worker        "$(location merge_zips) -j -ignore-duplicates -stripFile 'META-INF/*.SF' -stripFile 'META-INF/*.DSA' $(out) $$(cat $(genDir)/jars)",
101*ec4b0377SAndroid Build Coastguard Worker}
102*ec4b0377SAndroid Build Coastguard Worker
103*ec4b0377SAndroid Build Coastguard Workerjava_binary_host {
104*ec4b0377SAndroid Build Coastguard Worker    name: "resourceshrinker",
105*ec4b0377SAndroid Build Coastguard Worker    static_libs: ["resourceshrinker-classpath"],
106*ec4b0377SAndroid Build Coastguard Worker    wrapper: "tools/bin/resourceshrinker",
107*ec4b0377SAndroid Build Coastguard Worker}
108*ec4b0377SAndroid Build Coastguard Worker
109*ec4b0377SAndroid Build Coastguard Workerjava_import_host {
110*ec4b0377SAndroid Build Coastguard Worker    name: "lint_tests",
111*ec4b0377SAndroid Build Coastguard Worker    jars: [
112*ec4b0377SAndroid Build Coastguard Worker        "lint-tests.jar",
113*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/common/tools.common.jar",
114*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/org/ow2/asm/asm/9.6/asm-9.6.jar",
115*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/org/ow2/asm/asm-analysis/9.6/asm-analysis-9.6.jar",
116*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/external/org/ow2/asm/asm-tree/9.6/asm-tree-9.6.jar",
117*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/layoutlib-api/tools.layoutlib-api.jar",
118*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/lint/cli/cli.jar",
119*ec4b0377SAndroid Build Coastguard Worker        "tools/lib/sdk-common/tools.sdk-common.jar",
120*ec4b0377SAndroid Build Coastguard Worker    ]
121*ec4b0377SAndroid Build Coastguard Worker}
122