blob: 9d2fb68dba294a02237030cc8e101d8e36c4a689 [file] [log] [blame] [edit]
// 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.