1// Copyright (C) 2016 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14// 15 16// 17// Build support for guice within the Android Open Source Project 18// See https://source.android.com/source/building.html for more information 19// 20 21//################################## 22// Guice # 23//################################## 24 25// 26// Builds the 'no_aop' flavor for Android. 27// -- see core/pom.xml NO_AOP rule. 28// 29 30filegroup { 31 name: "guice_srcs", 32 srcs: ["core/src/**/*.java"], 33 exclude_srcs: [ 34 "core/src/com/google/inject/spi/InterceptorBinding.java", 35 "core/src/com/google/inject/internal/InterceptorBindingProcessor.java", 36 "core/src/com/google/inject/internal/InterceptorStackCallback.java", 37 "core/src/com/google/inject/internal/InterceptorStackCallback.java", 38 "core/src/com/google/inject/internal/util/LineNumbers.java", 39 "core/src/com/google/inject/internal/MethodAspect.java", 40 "core/src/com/google/inject/internal/ProxyFactory.java", 41 ], 42} 43 44filegroup { 45 name: "guice_test_src_files", 46 srcs: ["core/test/**/*.java"], 47 exclude_srcs: [ 48 "core/test/com/googlecode/guice/BytecodeGenTest.java", 49 "core/test/com/google/inject/IntegrationTest.java", 50 "core/test/com/google/inject/MethodInterceptionTest.java", 51 "core/test/com/google/inject/internal/ProxyFactoryTest.java", 52 ], 53} 54 55// Copy munge.jar to a srcjar. 56// Remove MungeTask.java, which is missing ant dependencies in Android. 57genrule { 58 name: "guice_munge_srcjar", 59 out: ["guice_munge.srcjar"], 60 srcs: ["lib/build/munge.jar"], 61 cmd: "zip --temp-path $${TMPDIR:-/tmp} $(in) -O $(out) -d MungeTask.java", 62} 63 64genrule { 65 name: "guice_munge_manifest", 66 out: ["guice_munge.manifest"], 67 srcs: ["lib/build/munge.jar"], 68 cmd: "unzip -qc $(in) META-INF/MANIFEST.MF > $(out)", 69} 70 71java_binary_host { 72 name: "guice_munge", 73 srcs: [":guice_munge_srcjar"], 74 manifest: ":guice_munge_manifest", 75 libs: ["junit"], 76} 77 78genrule { 79 name: "guice_munged_srcs", 80 srcs: [":guice_srcs"], 81 out: ["guice_munged_srcs.srcjar"], 82 tools: [ 83 "guice_munge", 84 "soong_zip", 85 ], 86 cmd: "for src in $(in); do " + 87 " mkdir -p $$(dirname $(genDir)/$${src}) && " + 88 " $(location guice_munge) -DNO_AOP $${src} > $(genDir)/$${src}; " + 89 " done && " + 90 " $(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)", 91} 92 93// Target-side Dalvik, host-side, and host-side Dalvik build 94 95java_library_static { 96 name: "guice", 97 host_supported: true, 98 hostdex: true, 99 sdk_version: "core_current", 100 srcs: [":guice_munged_srcs"], 101 static_libs: [ 102 "guava", 103 "jsr330", 104 ], 105} 106 107// TODO: Consider adding tests. 108