2023-01-10 15:46:04 +00:00
|
|
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|
|
|
import com.google.protobuf.gradle.*
|
|
|
|
|
|
|
|
plugins {
|
|
|
|
kotlin("jvm") version "1.7.21"
|
|
|
|
id("com.google.protobuf") version("0.9.1")
|
|
|
|
`java-library`
|
|
|
|
`maven-publish`
|
|
|
|
}
|
|
|
|
|
|
|
|
group = "io.chirpstack"
|
2023-12-07 09:13:36 +00:00
|
|
|
version = "4.6.0"
|
2023-01-10 15:46:04 +00:00
|
|
|
|
|
|
|
repositories {
|
|
|
|
mavenCentral()
|
|
|
|
}
|
|
|
|
|
|
|
|
kotlin {
|
|
|
|
kotlinDaemonJvmArgs = listOf("-Xmx2048m", "-Xms1024m", "-XX:+UseParallelGC")
|
|
|
|
}
|
|
|
|
|
|
|
|
buildscript {
|
|
|
|
dependencies {
|
|
|
|
classpath("com.google.protobuf:protobuf-gradle-plugin:0.9.1")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
dependencies {
|
|
|
|
api("io.grpc:grpc-protobuf:1.51.0")
|
|
|
|
api("io.grpc:grpc-netty:1.51.0")
|
|
|
|
api("io.grpc:grpc-kotlin-stub:1.3.0")
|
|
|
|
implementation("com.google.protobuf:protobuf-kotlin:3.21.9")
|
|
|
|
implementation("io.grpc:grpc-api:1.51.0")
|
|
|
|
implementation("io.grpc:grpc-stub:1.51.0")
|
|
|
|
implementation("io.grpc:protoc-gen-grpc-kotlin:1.3.0")
|
|
|
|
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
|
|
|
|
}
|
|
|
|
|
|
|
|
sourceSets {
|
|
|
|
main {
|
|
|
|
proto {
|
|
|
|
srcDir("$projectDir/../proto")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks {
|
|
|
|
getByName<Delete>("clean") {
|
|
|
|
delete.add("$projectDir/src/main/grpc")
|
|
|
|
delete.add("$projectDir/src/main/grpckt")
|
|
|
|
delete.add("$projectDir/src/main/java/internal")
|
|
|
|
delete.add("$projectDir/src/main/java/io")
|
|
|
|
delete.add("$projectDir/src/main/kotlin/internal")
|
|
|
|
delete.add("$projectDir/src/main/kotlin/io")
|
|
|
|
}
|
|
|
|
getByName("processResources") {
|
|
|
|
dependsOn("generateProto")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
tasks.withType<KotlinCompile> {
|
|
|
|
kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8.toString()
|
|
|
|
}
|
|
|
|
|
|
|
|
protobuf {
|
|
|
|
protoc {
|
|
|
|
artifact = "com.google.protobuf:protoc:3.21.9"
|
|
|
|
}
|
|
|
|
generatedFilesBaseDir = "$projectDir/src"
|
|
|
|
plugins {
|
|
|
|
id("grpc"){
|
|
|
|
artifact = "io.grpc:protoc-gen-grpc-java:1.51.0"
|
|
|
|
}
|
|
|
|
id("grpckt") {
|
|
|
|
artifact = "io.grpc:protoc-gen-grpc-kotlin:1.3.0:jdk8@jar"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
generateProtoTasks {
|
|
|
|
all().forEach {
|
|
|
|
it.plugins {
|
|
|
|
id("grpc")
|
|
|
|
id("grpckt")
|
|
|
|
}
|
|
|
|
it.builtins {
|
|
|
|
id("kotlin")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
publishing {
|
|
|
|
publications {
|
|
|
|
create<MavenPublication>("maven") {
|
|
|
|
groupId = project.group.toString()
|
|
|
|
artifactId = "chirpstack-api-kotlin"
|
|
|
|
version = project.version.toString()
|
|
|
|
from(components["kotlin"])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|