// Copyright (C) 2015 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.

java_import_host {
    name: "dagger2-auto-common",
    jars: ["lib/auto-common-1.0-20151022.071545-39.jar"],
}

java_import_host {
    name: "dagger2-auto-factory-jar",
    jars: ["lib/auto-factory-1.0-20150915.183854-35.jar"],
}

java_plugin {
    name: "dagger2-auto-factory",
    processor_class: "com.google.auto.factory.processor.AutoFactoryProcessor",
    static_libs: [
        "dagger2-auto-factory-jar",
        "dagger2-auto-common",
        "guava",
    ],
}

java_import_host {
    name: "dagger2-auto-service-jar",
    jars: ["lib/auto-service-1.0-rc2.jar"],
}

java_plugin {
    name: "dagger2-auto-service",
    processor_class: "com.google.auto.service.processor.AutoServiceProcessor",
    static_libs: ["dagger2-auto-service-jar"],
}

java_import_host {
    name: "dagger2-auto-value-jar",
    jars: ["lib/auto-value-1.4.1.jar"],
}

java_plugin {
    name: "dagger2-auto-value",
    processor_class: "com.google.auto.value.processor.AutoValueProcessor",
    static_libs: ["dagger2-auto-value-jar"],
}

java_plugin {
    name: "dagger2-auto-annotation",
    processor_class: "com.google.auto.value.processor.AutoAnnotationProcessor",
    static_libs: ["dagger2-auto-value-jar"],
}

java_import_host {
    name: "dagger2-google-java-format",
    jars: ["lib/google-java-format-0.1-20151017.042846-2.jar"],
}

java_import_host {
    name: "dagger2-inject",
    jars: ["lib/javax-inject.jar"],
}

java_library_host {
    name: "dagger2",

    srcs: ["core/src/main/java/**/*.java"],

    static_libs: ["dagger2-inject"],

    libs: ["guava"],

    java_version: "1.7",
}

// build dagger2 producers plugin
// ============================================================

java_plugin {
    name: "dagger2-producers",

    srcs: ["producers/src/main/java/**/*.java"],

    static_libs: ["dagger2-inject"],

    libs: [
        "dagger2",
        "guava",
    ],

    java_version: "1.7",
}

// build dagger2 compiler plugin
// ============================================================

java_plugin {
    name: "dagger2-compiler",
    processor_class: "dagger.internal.codegen.ComponentProcessor",
    generates_api: true,

    // Required for use of javax.annotation.Generated per http://b/62050818
    javacflags: ["-J--add-modules=java.xml.ws.annotation"],
    srcs: ["compiler/src/main/java/**/*.java"],

    // Manually include META-INF/services/javax.annotation.processing.Processor
    // as the AutoService processor doesn't work properly.
    java_resource_dirs: ["resources"],

    static_libs: [
        "dagger2",
        "dagger2-auto-common",
        "dagger2-auto-factory",
        "dagger2-auto-service",
        "dagger2-auto-value",
        "dagger2-google-java-format",
        "dagger2-inject",
        "dagger2-producers",
        "guava",
    ],

    plugins: [
        "dagger2-auto-factory",
        "dagger2-auto-service",
        "dagger2-auto-value",
        "dagger2-auto-annotation",
    ],

    java_version: "1.7",
}