1 /* 2 * Copyright 2017-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 import Java9Modularity.configureJava9ModuleInfo 5 import com.google.protobuf.gradle.* 6 import org.gradle.kotlin.dsl.protobuf 7 <lambda>null8plugins { 9 java // Needed for protobuf plugin only 10 kotlin("multiplatform") 11 12 alias(libs.plugins.serialization) 13 alias(libs.plugins.protobuf) 14 15 id("native-targets-conventions") 16 id("source-sets-conventions") 17 } 18 <lambda>null19protobuf { 20 protobuf.protoc { 21 // Download from repositories 22 artifact = libs.protoc.get().toString() 23 } 24 } 25 <lambda>null26tasks.clean { 27 delete(protobuf.protobuf.generatedFilesBaseDir) 28 } 29 <lambda>null30kotlin { 31 sourceSets { 32 configureEach { 33 languageSettings.optIn("kotlinx.serialization.internal.CoreFriendModuleApi") 34 } 35 36 commonMain { 37 dependencies { 38 api(project(":kotlinx-serialization-core")) 39 } 40 } 41 42 jvmTest { 43 kotlin.srcDirs(file("${protobuf.protobuf.generatedFilesBaseDir}/test/java")) 44 45 dependencies { 46 implementation(libs.protobuf.java) 47 implementation(libs.kotlintest) 48 } 49 } 50 } 51 } 52 <lambda>null53sourceSets.test { 54 extensions.configure<SourceDirectorySet>("proto") { 55 srcDirs("testProto", "jvmTest/resources/common") 56 } 57 } 58 <lambda>null59tasks.compileTestKotlinJvm { 60 dependsOn("generateTestProto") 61 } 62 63 configureJava9ModuleInfo() 64