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