Home | History | Annotate | Download | only in guice
      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 
     30 filegroup {
     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 
     44 filegroup {
     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.
     57 genrule {
     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 
     64 genrule {
     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 
     71 java_binary_host {
     72     name: "guice_munge",
     73     srcs: [":guice_munge_srcjar"],
     74     manifest: ":guice_munge_manifest",
     75     libs: ["junit"],
     76 }
     77 
     78 genrule {
     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 
     95 java_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