plugins {
    // ASSUMES GRADLE 5.6 OR HIGHER. Use plugin version 0.8.10 with earlier gradle versions
    id 'com.google.protobuf' version '0.8.17'
    // Generate IntelliJ IDEA's .idea & .iml project files
    id 'idea'
    id 'war'
}

repositories {
    maven { // The google mirror is less flaky than mavenCentral()
        url "https://maven-central.storage-download.googleapis.com/maven2/" }
    mavenLocal()
}

sourceCompatibility = 1.8
targetCompatibility = 1.8

def grpcVersion = '1.56.1-SNAPSHOT' // CURRENT_GRPC_VERSION
def protocVersion = '3.22.3'

dependencies {
    implementation "io.grpc:grpc-protobuf:${grpcVersion}",
            "io.grpc:grpc-servlet:${grpcVersion}",
            "io.grpc:grpc-stub:${grpcVersion}"

    compileOnly "javax.servlet:javax.servlet-api:4.0.1",
            "org.apache.tomcat:annotations-api:6.0.53"
}

protobuf {
    protoc { artifact = "com.google.protobuf:protoc:${protocVersion}" }
    plugins { grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" } }
    generateProtoTasks {
        all()*.plugins { grpc {} }
    }
}

// Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code.
sourceSets {
    main {
        java {
            srcDirs 'build/generated/source/proto/main/grpc'
            srcDirs 'build/generated/source/proto/main/java'
        }
    }
}
