• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>null8 plugins {
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>null19 protobuf {
20     protobuf.protoc {
21         // Download from repositories
22         artifact = libs.protoc.get().toString()
23     }
24 }
25 
<lambda>null26 tasks.clean {
27     delete(protobuf.protobuf.generatedFilesBaseDir)
28 }
29 
<lambda>null30 kotlin {
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>null53 sourceSets.test {
54     extensions.configure<SourceDirectorySet>("proto") {
55         srcDirs("testProto", "jvmTest/resources/common")
56     }
57 }
58 
<lambda>null59 tasks.compileTestKotlinJvm {
60     dependsOn("generateTestProto")
61 }
62 
63 configureJava9ModuleInfo()
64