/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ plugins { kotlin("jvm") id("com.ncorti.ktfmt.gradle") } repositories { mavenCentral() } dependencies { implementation(platform("org.jetbrains.kotlin:kotlin-bom")) implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.4") implementation("org.apache.thrift:libthrift:INCLUDED") testImplementation(kotlin("test")) } kotlin { jvmToolchain { (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(11)) } } tasks { if (JavaVersion.current().isJava11Compatible) { ktfmt { kotlinLangStyle() } } test { useJUnitPlatform() } task("compileThrift") { val thriftBin = if (hasProperty("thrift.compiler")) { file(property("thrift.compiler")) } else { project.rootDir.resolve("../../compiler/cpp/thrift") } val outputDir = layout.buildDirectory.dir("generated-sources") doFirst { mkdir(outputDir) } commandLine = listOf( thriftBin.absolutePath, "-gen", "kotlin", "-out", outputDir.get().toString(), layout.projectDirectory.file("src/test/resources/AnnotationTest.thrift").asFile.absolutePath ) group = LifecycleBasePlugin.BUILD_GROUP } compileKotlin { dependsOn("compileThrift") } } sourceSets["main"].java { srcDir(layout.buildDirectory.dir("generated-sources")) }