xref: /aosp_15_r20/external/kotlinx.serialization/formats/protobuf/build.gradle (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1/*
2 * Copyright 2017-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
3 */
4
5apply plugin: 'java' // Needed for protobuf plugin only
6apply plugin: 'kotlin-multiplatform'
7apply plugin: 'kotlinx-serialization'
8apply plugin: 'com.google.protobuf'
9apply from: rootProject.file("gradle/native-targets.gradle")
10apply from: rootProject.file("gradle/configure-source-sets.gradle")
11
12protobuf {
13    protoc {
14        // Download from repositories
15        artifact = 'com.google.protobuf:protoc:3.17.3'
16    }
17}
18
19clean {
20    delete protobuf.generatedFilesBaseDir
21}
22
23kotlin {
24    sourceSets {
25        configureEach {
26            languageSettings.optIn("kotlinx.serialization.internal.CoreFriendModuleApi")
27        }
28
29        commonMain {
30            dependencies {
31                api project(":kotlinx-serialization-core")
32            }
33        }
34
35        jvmTest {
36            kotlin.srcDirs += file("${protobuf.generatedFilesBaseDir}/test/java")
37            dependencies {
38                implementation 'com.google.protobuf:protobuf-java:3.17.3'
39                implementation 'io.kotlintest:kotlintest:2.0.7'
40            }
41        }
42    }
43}
44
45sourceSets.test.proto {
46    srcDirs = ['testProto', 'jvmTest/resources/common']
47}
48
49compileTestKotlinJvm {
50    dependsOn 'generateTestProto'
51}
52
53Java9Modularity.configureJava9ModuleInfo(project)
54