xref: /aosp_15_r20/external/guice/Android.bp (revision dc5640d1ceac12a29404866b9a53df952a7a6c47)
1*dc5640d1SHerbert Xue// Copyright (C) 2016 The Android Open Source Project
2*dc5640d1SHerbert Xue//
3*dc5640d1SHerbert Xue// Licensed under the Apache License, Version 2.0 (the "License");
4*dc5640d1SHerbert Xue// you may not use this file except in compliance with the License.
5*dc5640d1SHerbert Xue// You may obtain a copy of the License at
6*dc5640d1SHerbert Xue//
7*dc5640d1SHerbert Xue//      http://www.apache.org/licenses/LICENSE-2.0
8*dc5640d1SHerbert Xue//
9*dc5640d1SHerbert Xue// Unless required by applicable law or agreed to in writing, software
10*dc5640d1SHerbert Xue// distributed under the License is distributed on an "AS IS" BASIS,
11*dc5640d1SHerbert Xue// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*dc5640d1SHerbert Xue// See the License for the specific language governing permissions and
13*dc5640d1SHerbert Xue// limitations under the License.
14*dc5640d1SHerbert Xue//
15*dc5640d1SHerbert Xue
16*dc5640d1SHerbert Xue//
17*dc5640d1SHerbert Xue// Build support for guice within the Android Open Source Project
18*dc5640d1SHerbert Xue// See https://source.android.com/source/building.html for more information
19*dc5640d1SHerbert Xue//
20*dc5640d1SHerbert Xue
21*dc5640d1SHerbert Xue//##################################
22*dc5640d1SHerbert Xue//           Guice                 #
23*dc5640d1SHerbert Xue//##################################
24*dc5640d1SHerbert Xue
25*dc5640d1SHerbert Xue//
26*dc5640d1SHerbert Xue// Builds the 'no_aop' flavor for Android.
27*dc5640d1SHerbert Xue// -- see core/pom.xml NO_AOP rule.
28*dc5640d1SHerbert Xue//
29*dc5640d1SHerbert Xue
30*dc5640d1SHerbert Xuepackage {
31*dc5640d1SHerbert Xue    default_applicable_licenses: ["external_guice_license"],
32*dc5640d1SHerbert Xue}
33*dc5640d1SHerbert Xue
34*dc5640d1SHerbert Xue// Added automatically by a large-scale-change
35*dc5640d1SHerbert Xue//
36*dc5640d1SHerbert Xue// large-scale-change included anything that looked like it might be a license
37*dc5640d1SHerbert Xue// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
38*dc5640d1SHerbert Xue//
39*dc5640d1SHerbert Xue// Please consider removing redundant or irrelevant files from 'license_text:'.
40*dc5640d1SHerbert Xue// See: http://go/android-license-faq
41*dc5640d1SHerbert Xuelicense {
42*dc5640d1SHerbert Xue    name: "external_guice_license",
43*dc5640d1SHerbert Xue    visibility: [":__subpackages__"],
44*dc5640d1SHerbert Xue    license_kinds: [
45*dc5640d1SHerbert Xue        "SPDX-license-identifier-Apache-2.0",
46*dc5640d1SHerbert Xue    ],
47*dc5640d1SHerbert Xue    license_text: [
48*dc5640d1SHerbert Xue        "COPYING",
49*dc5640d1SHerbert Xue        "NOTICE",
50*dc5640d1SHerbert Xue    ],
51*dc5640d1SHerbert Xue}
52*dc5640d1SHerbert Xue
53*dc5640d1SHerbert Xuefilegroup {
54*dc5640d1SHerbert Xue    name: "guice_srcs",
55*dc5640d1SHerbert Xue    srcs: ["core/src/**/*.java"],
56*dc5640d1SHerbert Xue    exclude_srcs: [
57*dc5640d1SHerbert Xue        "core/src/com/google/inject/spi/InterceptorBinding.java",
58*dc5640d1SHerbert Xue        "core/src/com/google/inject/internal/InterceptorBindingProcessor.java",
59*dc5640d1SHerbert Xue        "core/src/com/google/inject/internal/InterceptorStackCallback.java",
60*dc5640d1SHerbert Xue        "core/src/com/google/inject/internal/InterceptorStackCallback.java",
61*dc5640d1SHerbert Xue        "core/src/com/google/inject/internal/util/LineNumbers.java",
62*dc5640d1SHerbert Xue        "core/src/com/google/inject/internal/MethodAspect.java",
63*dc5640d1SHerbert Xue        "core/src/com/google/inject/internal/ProxyFactory.java",
64*dc5640d1SHerbert Xue    ],
65*dc5640d1SHerbert Xue}
66*dc5640d1SHerbert Xue
67*dc5640d1SHerbert Xuefilegroup {
68*dc5640d1SHerbert Xue    name: "guice_test_src_files",
69*dc5640d1SHerbert Xue    srcs: ["core/test/**/*.java"],
70*dc5640d1SHerbert Xue    exclude_srcs: [
71*dc5640d1SHerbert Xue        "core/test/com/googlecode/guice/BytecodeGenTest.java",
72*dc5640d1SHerbert Xue        "core/test/com/google/inject/IntegrationTest.java",
73*dc5640d1SHerbert Xue        "core/test/com/google/inject/MethodInterceptionTest.java",
74*dc5640d1SHerbert Xue        "core/test/com/google/inject/internal/ProxyFactoryTest.java",
75*dc5640d1SHerbert Xue    ],
76*dc5640d1SHerbert Xue}
77*dc5640d1SHerbert Xue
78*dc5640d1SHerbert Xue// Copy munge.jar to a srcjar.
79*dc5640d1SHerbert Xue// Remove MungeTask.java, which is missing ant dependencies in Android.
80*dc5640d1SHerbert Xuegenrule {
81*dc5640d1SHerbert Xue    name: "guice_munge_srcjar",
82*dc5640d1SHerbert Xue    out: ["guice_munge.srcjar"],
83*dc5640d1SHerbert Xue    srcs: ["lib/build/munge.jar"],
84*dc5640d1SHerbert Xue    cmd: "zip -q --temp-path $${TMPDIR:-/tmp} $(in) -O $(out) -d MungeTask.java *.class",
85*dc5640d1SHerbert Xue}
86*dc5640d1SHerbert Xue
87*dc5640d1SHerbert Xuegenrule {
88*dc5640d1SHerbert Xue    name: "guice_munge_manifest",
89*dc5640d1SHerbert Xue    out: ["guice_munge.manifest"],
90*dc5640d1SHerbert Xue    srcs: ["lib/build/munge.jar"],
91*dc5640d1SHerbert Xue    cmd: "unzip -p -q $(in) META-INF/MANIFEST.MF > $(out)",
92*dc5640d1SHerbert Xue}
93*dc5640d1SHerbert Xue
94*dc5640d1SHerbert Xuejava_binary_host {
95*dc5640d1SHerbert Xue    name: "guice_munge",
96*dc5640d1SHerbert Xue    srcs: [":guice_munge_srcjar"],
97*dc5640d1SHerbert Xue    manifest: ":guice_munge_manifest",
98*dc5640d1SHerbert Xue    libs: ["junit"],
99*dc5640d1SHerbert Xue}
100*dc5640d1SHerbert Xue
101*dc5640d1SHerbert Xuegenrule {
102*dc5640d1SHerbert Xue    name: "guice_munged_srcs",
103*dc5640d1SHerbert Xue    srcs: [":guice_srcs"],
104*dc5640d1SHerbert Xue    out: ["guice_munged_srcs.srcjar"],
105*dc5640d1SHerbert Xue    tools: [
106*dc5640d1SHerbert Xue        "guice_munge",
107*dc5640d1SHerbert Xue        "soong_zip",
108*dc5640d1SHerbert Xue    ],
109*dc5640d1SHerbert Xue    cmd: "for src in $(in); do " +
110*dc5640d1SHerbert Xue        "  mkdir -p $$(dirname $(genDir)/$${src}) && " +
111*dc5640d1SHerbert Xue        "  $(location guice_munge) -DNO_AOP $${src} $(genDir)/$${src} || exit 1; " +
112*dc5640d1SHerbert Xue        " done && " +
113*dc5640d1SHerbert Xue        " $(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)",
114*dc5640d1SHerbert Xue}
115*dc5640d1SHerbert Xue
116*dc5640d1SHerbert Xue// Target-side Dalvik, host-side, and host-side Dalvik build
117*dc5640d1SHerbert Xue
118*dc5640d1SHerbert Xuejava_library_static {
119*dc5640d1SHerbert Xue    name: "guice",
120*dc5640d1SHerbert Xue    visibility: [
121*dc5640d1SHerbert Xue        "//external/testng:__pkg__",
122*dc5640d1SHerbert Xue        "//platform_testing/libraries/audio-test-harness/server:__pkg__",
123*dc5640d1SHerbert Xue        "//tools/tradefederation/core:__pkg__",
124*dc5640d1SHerbert Xue        "//vendor:__subpackages__",
125*dc5640d1SHerbert Xue    ],
126*dc5640d1SHerbert Xue    host_supported: true,
127*dc5640d1SHerbert Xue    hostdex: true,
128*dc5640d1SHerbert Xue    sdk_version: "core_current",
129*dc5640d1SHerbert Xue    srcs: [":guice_munged_srcs"],
130*dc5640d1SHerbert Xue    static_libs: [
131*dc5640d1SHerbert Xue        "guava",
132*dc5640d1SHerbert Xue        "jsr330",
133*dc5640d1SHerbert Xue    ],
134*dc5640d1SHerbert Xue}
135*dc5640d1SHerbert Xue
136*dc5640d1SHerbert Xue// Variation that doesn't link guava statically
137*dc5640d1SHerbert Xuejava_library_static {
138*dc5640d1SHerbert Xue    name: "guice-no-guava",
139*dc5640d1SHerbert Xue    visibility: [
140*dc5640d1SHerbert Xue        "//device/google/cuttlefish/tests/integration:__pkg__",
141*dc5640d1SHerbert Xue        "//external/testng:__pkg__",
142*dc5640d1SHerbert Xue        "//platform_testing/libraries/audio-test-harness/server:__pkg__",
143*dc5640d1SHerbert Xue        "//tools/tradefederation/core:__pkg__",
144*dc5640d1SHerbert Xue    ],
145*dc5640d1SHerbert Xue    host_supported: true,
146*dc5640d1SHerbert Xue    hostdex: true,
147*dc5640d1SHerbert Xue    sdk_version: "core_current",
148*dc5640d1SHerbert Xue    srcs: [":guice_munged_srcs"],
149*dc5640d1SHerbert Xue    libs: [
150*dc5640d1SHerbert Xue        "guava",
151*dc5640d1SHerbert Xue    ],
152*dc5640d1SHerbert Xue    static_libs: [
153*dc5640d1SHerbert Xue        "jsr330",
154*dc5640d1SHerbert Xue    ],
155*dc5640d1SHerbert Xue}
156*dc5640d1SHerbert Xue
157*dc5640d1SHerbert Xue// TODO: Consider adding tests.
158