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