xref: /aosp_15_r20/prebuilts/r8/Android.bp (revision f1fd37cb3c4ec94650f99d456d82ac1dac2c58ba)
1*f1fd37cbSAndroid Build Coastguard Worker//
2*f1fd37cbSAndroid Build Coastguard Worker// Copyright (C) 2021 The Android Open Source Project
3*f1fd37cbSAndroid Build Coastguard Worker//
4*f1fd37cbSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
5*f1fd37cbSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
6*f1fd37cbSAndroid Build Coastguard Worker// You may obtain a copy of the License at
7*f1fd37cbSAndroid Build Coastguard Worker//
8*f1fd37cbSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
9*f1fd37cbSAndroid Build Coastguard Worker//
10*f1fd37cbSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
11*f1fd37cbSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
12*f1fd37cbSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*f1fd37cbSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
14*f1fd37cbSAndroid Build Coastguard Worker// limitations under the License.
15*f1fd37cbSAndroid Build Coastguard Worker
16*f1fd37cbSAndroid Build Coastguard Workerpackage {
17*f1fd37cbSAndroid Build Coastguard Worker    default_applicable_licenses: ["prebuilts_r8_license"],
18*f1fd37cbSAndroid Build Coastguard Worker}
19*f1fd37cbSAndroid Build Coastguard Worker
20*f1fd37cbSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
21*f1fd37cbSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
22*f1fd37cbSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
23*f1fd37cbSAndroid Build Coastguard Worker//
24*f1fd37cbSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*f1fd37cbSAndroid Build Coastguard Worker//
26*f1fd37cbSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
27*f1fd37cbSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
28*f1fd37cbSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
29*f1fd37cbSAndroid Build Coastguard Worker//
30*f1fd37cbSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*f1fd37cbSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
32*f1fd37cbSAndroid Build Coastguard Worker// used in the current project.
33*f1fd37cbSAndroid Build Coastguard Worker//
34*f1fd37cbSAndroid Build Coastguard Worker// large-scale-change included anything that looked like it might be a license
35*f1fd37cbSAndroid Build Coastguard Worker// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
36*f1fd37cbSAndroid Build Coastguard Worker//
37*f1fd37cbSAndroid Build Coastguard Worker// Please consider removing redundant or irrelevant files from 'license_text:'.
38*f1fd37cbSAndroid Build Coastguard Worker// See: http://go/android-license-faq
39*f1fd37cbSAndroid Build Coastguard Workerlicense {
40*f1fd37cbSAndroid Build Coastguard Worker    name: "prebuilts_r8_license",
41*f1fd37cbSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
42*f1fd37cbSAndroid Build Coastguard Worker    license_kinds: [
43*f1fd37cbSAndroid Build Coastguard Worker        "SPDX-license-identifier-Apache-2.0",
44*f1fd37cbSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
45*f1fd37cbSAndroid Build Coastguard Worker        "SPDX-license-identifier-GPL",
46*f1fd37cbSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
47*f1fd37cbSAndroid Build Coastguard Worker    ],
48*f1fd37cbSAndroid Build Coastguard Worker    license_text: [
49*f1fd37cbSAndroid Build Coastguard Worker        "LICENSE",
50*f1fd37cbSAndroid Build Coastguard Worker        "NOTICE",
51*f1fd37cbSAndroid Build Coastguard Worker    ],
52*f1fd37cbSAndroid Build Coastguard Worker}
53*f1fd37cbSAndroid Build Coastguard Worker
54*f1fd37cbSAndroid Build Coastguard Workerjava_binary_host {
55*f1fd37cbSAndroid Build Coastguard Worker    name: "d8",
56*f1fd37cbSAndroid Build Coastguard Worker    wrapper: "d8",
57*f1fd37cbSAndroid Build Coastguard Worker    static_libs: ["r8lib"],
58*f1fd37cbSAndroid Build Coastguard Worker    target: {
59*f1fd37cbSAndroid Build Coastguard Worker        windows: {
60*f1fd37cbSAndroid Build Coastguard Worker            enabled: true,
61*f1fd37cbSAndroid Build Coastguard Worker            wrapper: "d8.bat",
62*f1fd37cbSAndroid Build Coastguard Worker        },
63*f1fd37cbSAndroid Build Coastguard Worker    },
64*f1fd37cbSAndroid Build Coastguard Worker}
65*f1fd37cbSAndroid Build Coastguard Worker
66*f1fd37cbSAndroid Build Coastguard Workerjava_binary_host {
67*f1fd37cbSAndroid Build Coastguard Worker    name: "r8-compat-proguard",
68*f1fd37cbSAndroid Build Coastguard Worker    main_class: "com.android.tools.r8.compatproguard.CompatProguard",
69*f1fd37cbSAndroid Build Coastguard Worker    static_libs: ["r8lib"],
70*f1fd37cbSAndroid Build Coastguard Worker}
71*f1fd37cbSAndroid Build Coastguard Worker
72*f1fd37cbSAndroid Build Coastguard Workerjava_binary_host {
73*f1fd37cbSAndroid Build Coastguard Worker    name: "r8",
74*f1fd37cbSAndroid Build Coastguard Worker    main_class: "com.android.tools.r8wrappers.R8Wrapper",
75*f1fd37cbSAndroid Build Coastguard Worker    static_libs: ["r8lib"]
76*f1fd37cbSAndroid Build Coastguard Worker}
77*f1fd37cbSAndroid Build Coastguard Worker
78*f1fd37cbSAndroid Build Coastguard Workerjava_binary_host {
79*f1fd37cbSAndroid Build Coastguard Worker    name: "retrace",
80*f1fd37cbSAndroid Build Coastguard Worker    main_class: "com.android.tools.r8wrappers.retrace.RetraceWrapper",
81*f1fd37cbSAndroid Build Coastguard Worker    static_libs: ["r8lib"],
82*f1fd37cbSAndroid Build Coastguard Worker}
83*f1fd37cbSAndroid Build Coastguard Worker
84*f1fd37cbSAndroid Build Coastguard Workerjava_binary_host {
85*f1fd37cbSAndroid Build Coastguard Worker    name: "extractmarker",
86*f1fd37cbSAndroid Build Coastguard Worker    main_class: "com.android.tools.r8.ExtractMarker",
87*f1fd37cbSAndroid Build Coastguard Worker    static_libs: ["r8lib"],
88*f1fd37cbSAndroid Build Coastguard Worker    wrapper: "extractmarker.sh",
89*f1fd37cbSAndroid Build Coastguard Worker}
90*f1fd37cbSAndroid Build Coastguard Worker
91*f1fd37cbSAndroid Build Coastguard Workerjava_library_host {
92*f1fd37cbSAndroid Build Coastguard Worker    name: "r8lib",
93*f1fd37cbSAndroid Build Coastguard Worker    srcs: ["src/**/*.java"],
94*f1fd37cbSAndroid Build Coastguard Worker    static_libs: ["r8lib-prebuilt"],
95*f1fd37cbSAndroid Build Coastguard Worker    target: {
96*f1fd37cbSAndroid Build Coastguard Worker        windows: {
97*f1fd37cbSAndroid Build Coastguard Worker            enabled: true,
98*f1fd37cbSAndroid Build Coastguard Worker        },
99*f1fd37cbSAndroid Build Coastguard Worker    },
100*f1fd37cbSAndroid Build Coastguard Worker}
101*f1fd37cbSAndroid Build Coastguard Worker
102*f1fd37cbSAndroid Build Coastguard Workerfilegroup {
103*f1fd37cbSAndroid Build Coastguard Worker    name: "r8.jar.map",
104*f1fd37cbSAndroid Build Coastguard Worker    srcs: ["r8.jar.map"],
105*f1fd37cbSAndroid Build Coastguard Worker}
106*f1fd37cbSAndroid Build Coastguard Worker
107*f1fd37cbSAndroid Build Coastguard Workerjava_import_host {
108*f1fd37cbSAndroid Build Coastguard Worker    name: "r8lib-prebuilt",
109*f1fd37cbSAndroid Build Coastguard Worker    jars: ["r8.jar"],
110*f1fd37cbSAndroid Build Coastguard Worker    target: {
111*f1fd37cbSAndroid Build Coastguard Worker        windows: {
112*f1fd37cbSAndroid Build Coastguard Worker            enabled: true,
113*f1fd37cbSAndroid Build Coastguard Worker        },
114*f1fd37cbSAndroid Build Coastguard Worker    },
115*f1fd37cbSAndroid Build Coastguard Worker}
116*f1fd37cbSAndroid Build Coastguard Worker
117*f1fd37cbSAndroid Build Coastguard Worker// Library of "keep" annotations for instructing the R8 code shrinker.
118*f1fd37cbSAndroid Build Coastguard Worker// The R8 keep annotations are part of an experimental alternative to
119*f1fd37cbSAndroid Build Coastguard Worker// the use of "keep rules". More information can be found in b/248408342.
120*f1fd37cbSAndroid Build Coastguard Workerjava_import {
121*f1fd37cbSAndroid Build Coastguard Worker    name: "keepanno-annotations",
122*f1fd37cbSAndroid Build Coastguard Worker    jars: ["keepanno-annotations.jar"],
123*f1fd37cbSAndroid Build Coastguard Worker}
124