xref: /aosp_15_r20/external/kotlinx.serialization/benchmark/build.gradle (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1*57b5a4a6SAndroid Build Coastguard Workerimport org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2*57b5a4a6SAndroid Build Coastguard Worker
3*57b5a4a6SAndroid Build Coastguard Worker/*
4*57b5a4a6SAndroid Build Coastguard Worker * Copyright 2017-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
5*57b5a4a6SAndroid Build Coastguard Worker */
6*57b5a4a6SAndroid Build Coastguard Worker
7*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'java'
8*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'kotlin'
9*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'kotlinx-serialization'
10*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'idea'
11*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'com.github.johnrengelman.shadow'
12*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'me.champeau.jmh'
13*57b5a4a6SAndroid Build Coastguard Worker
14*57b5a4a6SAndroid Build Coastguard WorkersourceCompatibility = 1.8
15*57b5a4a6SAndroid Build Coastguard WorkertargetCompatibility = 1.8
16*57b5a4a6SAndroid Build Coastguard Workerjmh.jmhVersion = "1.35"
17*57b5a4a6SAndroid Build Coastguard Worker
18*57b5a4a6SAndroid Build Coastguard WorkerprocessJmhResources {
19*57b5a4a6SAndroid Build Coastguard Worker    doFirst {
20*57b5a4a6SAndroid Build Coastguard Worker        duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
21*57b5a4a6SAndroid Build Coastguard Worker    }
22*57b5a4a6SAndroid Build Coastguard Worker}
23*57b5a4a6SAndroid Build Coastguard Worker
24*57b5a4a6SAndroid Build Coastguard WorkerjmhJar {
25*57b5a4a6SAndroid Build Coastguard Worker    archiveBaseName.set('benchmarks')
26*57b5a4a6SAndroid Build Coastguard Worker    archiveVersion.set('')
27*57b5a4a6SAndroid Build Coastguard Worker    destinationDirectory = file("$rootDir")
28*57b5a4a6SAndroid Build Coastguard Worker}
29*57b5a4a6SAndroid Build Coastguard Worker
30*57b5a4a6SAndroid Build Coastguard Worker// to include benchmark-module jmh source set compilation during build to verify that it is also compiled succesfully
31*57b5a4a6SAndroid Build Coastguard Workerassemble.dependsOn jmhClasses
32*57b5a4a6SAndroid Build Coastguard Worker
33*57b5a4a6SAndroid Build Coastguard Workertasks.withType(KotlinCompile).configureEach {
34*57b5a4a6SAndroid Build Coastguard Worker    kotlinOptions {
35*57b5a4a6SAndroid Build Coastguard Worker        if (rootProject.ext.kotlin_lv_override != null) {
36*57b5a4a6SAndroid Build Coastguard Worker            languageVersion = rootProject.ext.kotlin_lv_override
37*57b5a4a6SAndroid Build Coastguard Worker            freeCompilerArgs += "-Xsuppress-version-warnings"
38*57b5a4a6SAndroid Build Coastguard Worker        }
39*57b5a4a6SAndroid Build Coastguard Worker    }
40*57b5a4a6SAndroid Build Coastguard Worker}
41*57b5a4a6SAndroid Build Coastguard Worker
42*57b5a4a6SAndroid Build Coastguard Workerdependencies {
43*57b5a4a6SAndroid Build Coastguard Worker    implementation 'org.openjdk.jmh:jmh-core:1.35'
44*57b5a4a6SAndroid Build Coastguard Worker    implementation 'com.google.guava:guava:31.1-jre'
45*57b5a4a6SAndroid Build Coastguard Worker    implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.3'
46*57b5a4a6SAndroid Build Coastguard Worker    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.13.3'
47*57b5a4a6SAndroid Build Coastguard Worker    implementation "com.squareup.okio:okio:$okio_version"
48*57b5a4a6SAndroid Build Coastguard Worker    implementation project(':kotlinx-serialization-core')
49*57b5a4a6SAndroid Build Coastguard Worker    implementation project(':kotlinx-serialization-json')
50*57b5a4a6SAndroid Build Coastguard Worker    implementation project(':kotlinx-serialization-json-okio')
51*57b5a4a6SAndroid Build Coastguard Worker    implementation project(':kotlinx-serialization-protobuf')
52*57b5a4a6SAndroid Build Coastguard Worker}
53