gradleproject/build.gradle.kts (111 lines of code) (raw):
import com.google.protobuf.gradle.*
import org.jetbrains.intellij.tasks.RunIdeTask
import org.gradle.internal.os.OperatingSystem
import kotlin.collections.setOf
plugins {
id("java")
id("org.jetbrains.kotlin.jvm") version "1.7.10"
id("org.jetbrains.intellij") version "1.8.1"
id("com.google.protobuf") version "0.8.19"
}
group = "com.example"
version = "1.0-SNAPSHOT"
val grpcVersion = "1.48.1"
val grpcKotlinVersion = "1.3.0"
val protobufVersion = "3.15.8"
val coroutinesVersion = "1.6.4"
val nettyVersion = "4.1.79.Final"
repositories {
mavenCentral()
}
dependencies {
implementation("javax.annotation:javax.annotation-api:1.3.2")
implementation("io.grpc:grpc-protobuf:$grpcVersion")
implementation("io.grpc:grpc-stub:$grpcVersion")
implementation("io.grpc:grpc-netty:$grpcVersion")
implementation("io.grpc:grpc-kotlin-stub:$grpcKotlinVersion")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:$coroutinesVersion")
runtimeOnly("io.grpc:grpc-netty:$grpcVersion")
implementation("io.netty:netty-transport-native-epoll:$nettyVersion")
implementation("io.netty:netty-transport-native-kqueue:$nettyVersion")
val arch = System.getProperty("os.arch")
val is86_64 = setOf("x86_64", "amd64", "x64", "x86-64").contains(arch)
val isArm64 = arch == "arm64"
if (OperatingSystem.current().isLinux) {
if (is86_64) {
implementation("io.netty:netty-transport-native-epoll:$nettyVersion:linux-x86_64")
} else if (isArm64) {
implementation("io.netty:netty-transport-native-epoll:$nettyVersion:linux-aarch_64")
}
} else if (OperatingSystem.current().isMacOsX) {
if (is86_64) {
implementation("io.netty:netty-transport-native-kqueue:$nettyVersion:osx-x86_64")
} else if (isArm64) {
implementation("io.netty:netty-transport-native-kqueue:$nettyVersion:osx-aarch_64")
}
}
}
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:$protobufVersion"
}
plugins {
id("grpc") {
artifact = "io.grpc:protoc-gen-grpc-java:$grpcVersion"
}
id("grpckt") {
artifact = "io.grpc:protoc-gen-grpc-kotlin:$grpcKotlinVersion:jdk8@jar"
}
}
generateProtoTasks {
ofSourceSet("main").forEach {
it.plugins {
id("grpc")
id("grpckt")
}
}
}
}
sourceSets {
main {
proto {
srcDir("$projectDir/../src/main/proto")
}
java {
srcDir("$projectDir/../src/main/kotlin/rules_intellij/indexing")
srcDir("$projectDir/../src/main/kotlin/rules_intellij/domain_socket")
}
resources {
srcDir("$projectDir/../src/main/resources")
}
}
}
// Configure Gradle IntelliJ Plugin - read more: https://github.com/JetBrains/gradle-intellij-plugin
intellij {
// version.set("2021.2.4")
// version.set("2022.2.2")
version.set("2022.2.3")
type.set("IU") // Target IDE Platform
plugins.set(listOf(
// "intellij.indexing.shared:221.6008.13",
// "intellij.indexing.shared:222.4167.21",
"intellij.indexing.shared:222.4345.14",
"intellij.indexing.shared.core"
))
}
tasks {
// Set the JVM compatibility versions
withType<JavaCompile> {
sourceCompatibility = "11"
targetCompatibility = "11"
}
withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile> {
kotlinOptions.jvmTarget = "11"
}
patchPluginXml {
sinceBuild.set("212")
untilBuild.set("222.*")
}
signPlugin {
certificateChain.set(System.getenv("CERTIFICATE_CHAIN"))
privateKey.set(System.getenv("PRIVATE_KEY"))
password.set(System.getenv("PRIVATE_KEY_PASSWORD"))
}
publishPlugin {
token.set(System.getenv("PUBLISH_TOKEN"))
}
}