// Add dependency on the protobuf plugin
buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath libraries.protobuf_plugin
    }
}

description = "gRPC: Services"

dependencies {
    compile project(':grpc-protobuf'),
            project(':grpc-stub')
    testCompile project(':grpc-testing')
    signature "org.codehaus.mojo.signature:java16:1.1@signature"
}

configureProtoCompilation()

// Let intellij projects refer to generated code
idea {
    module {
        sourceDirs += file("${projectDir}/src/generated/main/java");
        sourceDirs += file("${projectDir}/src/generated/main/grpc");
        testSourceDirs += file("${projectDir}/src/generated/test/java")
        testSourceDirs += file("${projectDir}/src/generated/test/grpc")
    }
}
