// 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.