// Add dependency on the protobuf plugin
buildscript {
    repositories {
        maven { // The google mirror is less flaky than mavenCentral()
            url "https://maven-central.storage-download.googleapis.com/repos/central/data/" }
    }
    dependencies { classpath libraries.protobuf_plugin }
}

description = 'gRPC: Protobuf Nano'

dependencies {
    compile project(':grpc-core'),
            libraries.protobuf_nano,
            libraries.guava
    signature "org.codehaus.mojo.signature:java17:1.0@signature"
    signature "net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature"
}

configureProtoCompilation()

if (project.hasProperty('protobuf')) {
    protobuf {
        generateProtoTasks {
            all().each { task ->
                task.builtins {
                    remove java
                    javanano { option 'ignore_services=true' }
                }
            }
        }
    }
}
