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