| // Copyright (C) 2016 The Android Open Source Project |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| // |
| |
| // |
| // Build support for guice within the Android Open Source Project |
| // See https://source.android.com/source/building.html for more information |
| // |
| |
| //################################## |
| // Guice # |
| //################################## |
| |
| // |
| // Builds the 'no_aop' flavor for Android. |
| // -- see core/pom.xml NO_AOP rule. |
| // |
| |
| package { |
| default_applicable_licenses: ["external_guice_license"], |
| } |
| |
| // Added automatically by a large-scale-change |
| // |
| // large-scale-change included anything that looked like it might be a license |
| // text as a license_text. e.g. LICENSE, NOTICE, COPYING etc. |
| // |
| // Please consider removing redundant or irrelevant files from 'license_text:'. |
| // See: http://go/android-license-faq |
| license { |
| name: "external_guice_license", |
| visibility: [":__subpackages__"], |
| license_kinds: [ |
| "SPDX-license-identifier-Apache-2.0", |
| ], |
| license_text: [ |
| "COPYING", |
| "NOTICE", |
| ], |
| } |
| |
| filegroup { |
| name: "guice_srcs", |
| srcs: ["core/src/**/*.java"], |
| exclude_srcs: [ |
| "core/src/com/google/inject/spi/InterceptorBinding.java", |
| "core/src/com/google/inject/internal/InterceptorBindingProcessor.java", |
| "core/src/com/google/inject/internal/InterceptorStackCallback.java", |
| "core/src/com/google/inject/internal/InterceptorStackCallback.java", |
| "core/src/com/google/inject/internal/util/LineNumbers.java", |
| "core/src/com/google/inject/internal/MethodAspect.java", |
| "core/src/com/google/inject/internal/ProxyFactory.java", |
| ], |
| } |
| |
| filegroup { |
| name: "guice_test_src_files", |
| srcs: ["core/test/**/*.java"], |
| exclude_srcs: [ |
| "core/test/com/googlecode/guice/BytecodeGenTest.java", |
| "core/test/com/google/inject/IntegrationTest.java", |
| "core/test/com/google/inject/MethodInterceptionTest.java", |
| "core/test/com/google/inject/internal/ProxyFactoryTest.java", |
| ], |
| } |
| |
| // Copy munge.jar to a srcjar. |
| // Remove MungeTask.java, which is missing ant dependencies in Android. |
| genrule { |
| name: "guice_munge_srcjar", |
| out: ["guice_munge.srcjar"], |
| srcs: ["lib/build/munge.jar"], |
| cmd: "zip -q --temp-path $${TMPDIR:-/tmp} $(in) -O $(out) -d MungeTask.java *.class", |
| } |
| |
| genrule { |
| name: "guice_munge_manifest", |
| out: ["guice_munge.manifest"], |
| srcs: ["lib/build/munge.jar"], |
| cmd: "unzip -p -q $(in) META-INF/MANIFEST.MF > $(out)", |
| } |
| |
| java_binary_host { |
| name: "guice_munge", |
| srcs: [":guice_munge_srcjar"], |
| manifest: ":guice_munge_manifest", |
| libs: ["junit"], |
| } |
| |
| genrule { |
| name: "guice_munged_srcs", |
| srcs: [":guice_srcs"], |
| out: ["guice_munged_srcs.srcjar"], |
| tools: [ |
| "guice_munge", |
| "soong_zip", |
| ], |
| cmd: "for src in $(in); do " + |
| " mkdir -p $$(dirname $(genDir)/$${src}) && " + |
| " $(location guice_munge) -DNO_AOP $${src} > $(genDir)/$${src} || exit 1; " + |
| " done && " + |
| " $(location soong_zip) -o $(out) -C $(genDir) -D $(genDir)", |
| } |
| |
| // Target-side Dalvik, host-side, and host-side Dalvik build |
| |
| java_library_static { |
| name: "guice", |
| visibility: [ |
| "//external/testng:__pkg__", |
| "//platform_testing/libraries/audio-test-harness/server:__pkg__", |
| "//tools/tradefederation/core:__pkg__", |
| ], |
| host_supported: true, |
| hostdex: true, |
| sdk_version: "core_current", |
| srcs: [":guice_munged_srcs"], |
| static_libs: [ |
| "guava", |
| "jsr330", |
| ], |
| } |
| |
| // Variation that doesn't link guava statically |
| java_library_static { |
| name: "guice-no-guava", |
| host_supported: true, |
| hostdex: true, |
| sdk_version: "core_current", |
| srcs: [":guice_munged_srcs"], |
| libs: [ |
| "guava", |
| ], |
| static_libs: [ |
| "jsr330", |
| ], |
| } |
| |
| // TODO: Consider adding tests. |