1 /* 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, 13 * software distributed under the License is distributed on an 14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 15 * KIND, either express or implied. See the License for the 16 * specific language governing permissions and limitations 17 * under the License. 18 */ 19 <lambda>null20plugins { 21 kotlin("jvm") 22 id("com.ncorti.ktfmt.gradle") 23 } 24 <lambda>null25repositories { 26 mavenCentral() 27 } 28 <lambda>null29dependencies { 30 implementation(platform("org.jetbrains.kotlin:kotlin-bom")) 31 implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") 32 implementation("org.jetbrains.kotlinx:kotlinx-coroutines-jdk8:1.6.1") 33 implementation("org.apache.thrift:libthrift:INCLUDED") 34 testImplementation(kotlin("test")) 35 } 36 <lambda>null37kotlin { 38 jvmToolchain { 39 (this as JavaToolchainSpec).languageVersion.set(JavaLanguageVersion.of(11)) 40 } 41 } 42 <lambda>null43tasks { 44 if (JavaVersion.current().isJava11Compatible) { 45 ktfmt { 46 kotlinLangStyle() 47 } 48 } 49 50 test { 51 useJUnitPlatform() 52 } 53 54 task<Exec>("compileThrift") { 55 val thriftBin = if (hasProperty("thrift.compiler")) { 56 file(property("thrift.compiler")) 57 } else { 58 project.rootDir.resolve("../../compiler/cpp/thrift") 59 } 60 val outputDir = layout.buildDirectory.dir("generated-sources") 61 doFirst { 62 mkdir(outputDir) 63 } 64 commandLine = listOf( 65 thriftBin.absolutePath, 66 "-gen", 67 "kotlin", 68 "-out", 69 outputDir.get().toString(), 70 layout.projectDirectory.file("src/test/resources/AnnotationTest.thrift").asFile.absolutePath 71 ) 72 group = LifecycleBasePlugin.BUILD_GROUP 73 } 74 75 compileKotlin { 76 dependsOn("compileThrift") 77 } 78 } 79 <lambda>null80sourceSets["main"].java { 81 srcDir(layout.buildDirectory.dir("generated-sources")) 82 } 83