blob: 154cee32bcb283fd435bbb9b7218db0369944c4d [file] [log] [blame]
// 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.
//
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 --temp-path $${TMPDIR:-/tmp} $(in) -O $(out) -d MungeTask.java",
}
genrule {
name: "guice_munge_manifest",
out: ["guice_munge.manifest"],
srcs: ["lib/build/munge.jar"],
cmd: "unzip -qc $(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}; " +
" 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",
host_supported: true,
hostdex: true,
sdk_version: "core_current",
srcs: [":guice_munged_srcs"],
static_libs: [
"guava",
"jsr330",
],
}
// TODO: Consider adding tests.