xref: /aosp_15_r20/external/kotlinx.serialization/build.gradle (revision 57b5a4a64c534cf7f27ac9427ceab07f3d8ed3d8)
1*57b5a4a6SAndroid Build Coastguard Worker/*
2*57b5a4a6SAndroid Build Coastguard Worker * Copyright 2017-2022 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 Workerbuildscript {
6*57b5a4a6SAndroid Build Coastguard Worker    /**
7*57b5a4a6SAndroid Build Coastguard Worker     * Overrides for Teamcity 'K2 User Projects' + 'Aggregate build / Kotlinx libraries compilation' configuration:
8*57b5a4a6SAndroid Build Coastguard Worker     * kotlin_repo_url - local repository with snapshot Kotlin compiler
9*57b5a4a6SAndroid Build Coastguard Worker     * kotlin_version - kotlin version to use
10*57b5a4a6SAndroid Build Coastguard Worker     * kotlin_language_version - LV to use
11*57b5a4a6SAndroid Build Coastguard Worker     */
12*57b5a4a6SAndroid Build Coastguard Worker    ext.snapshotRepoUrl = rootProject.properties["kotlin_repo_url"]
13*57b5a4a6SAndroid Build Coastguard Worker    ext.kotlin_lv_override = rootProject.properties["kotlin_language_version"]
14*57b5a4a6SAndroid Build Coastguard Worker    if (snapshotRepoUrl != null && snapshotRepoUrl != "") {
15*57b5a4a6SAndroid Build Coastguard Worker        ext.kotlin_version = rootProject.properties["kotlin_version"]
16*57b5a4a6SAndroid Build Coastguard Worker        repositories {
17*57b5a4a6SAndroid Build Coastguard Worker            maven { url snapshotRepoUrl }
18*57b5a4a6SAndroid Build Coastguard Worker        }
19*57b5a4a6SAndroid Build Coastguard Worker    } else if (project.hasProperty("bootstrap")) {
20*57b5a4a6SAndroid Build Coastguard Worker        ext.kotlin_version = property('kotlin.version.snapshot')
21*57b5a4a6SAndroid Build Coastguard Worker        ext["kotlin.native.home"] = System.getenv("KONAN_LOCAL_DIST")
22*57b5a4a6SAndroid Build Coastguard Worker    } else {
23*57b5a4a6SAndroid Build Coastguard Worker        ext.kotlin_version = property('kotlin.version')
24*57b5a4a6SAndroid Build Coastguard Worker    }
25*57b5a4a6SAndroid Build Coastguard Worker    if (project.hasProperty("library.version")) {
26*57b5a4a6SAndroid Build Coastguard Worker        ext.overriden_version = property('library.version')
27*57b5a4a6SAndroid Build Coastguard Worker    }
28*57b5a4a6SAndroid Build Coastguard Worker    ext.experimentalsEnabled = ["-progressive",
29*57b5a4a6SAndroid Build Coastguard Worker                                "-opt-in=kotlin.ExperimentalMultiplatform",
30*57b5a4a6SAndroid Build Coastguard Worker                                "-opt-in=kotlinx.serialization.InternalSerializationApi",
31*57b5a4a6SAndroid Build Coastguard Worker                                "-P", "plugin:org.jetbrains.kotlinx.serialization:disableIntrinsic=false"
32*57b5a4a6SAndroid Build Coastguard Worker    ]
33*57b5a4a6SAndroid Build Coastguard Worker
34*57b5a4a6SAndroid Build Coastguard Worker    ext.experimentalsInTestEnabled = ["-progressive",
35*57b5a4a6SAndroid Build Coastguard Worker                                      "-opt-in=kotlin.ExperimentalMultiplatform",
36*57b5a4a6SAndroid Build Coastguard Worker                                      "-opt-in=kotlinx.serialization.ExperimentalSerializationApi",
37*57b5a4a6SAndroid Build Coastguard Worker                                      "-opt-in=kotlinx.serialization.InternalSerializationApi",
38*57b5a4a6SAndroid Build Coastguard Worker                                      "-P", "plugin:org.jetbrains.kotlinx.serialization:disableIntrinsic=false"
39*57b5a4a6SAndroid Build Coastguard Worker    ]
40*57b5a4a6SAndroid Build Coastguard Worker    ext.koverEnabled = property('kover.enabled') ?: true
41*57b5a4a6SAndroid Build Coastguard Worker
42*57b5a4a6SAndroid Build Coastguard Worker    def noTeamcityInteractionFlag = rootProject.hasProperty("no_teamcity_interaction")
43*57b5a4a6SAndroid Build Coastguard Worker    def buildSnapshotUPFlag = rootProject.hasProperty("build_snapshot_up")
44*57b5a4a6SAndroid Build Coastguard Worker    ext.teamcityInteractionDisabled = noTeamcityInteractionFlag || buildSnapshotUPFlag
45*57b5a4a6SAndroid Build Coastguard Worker
46*57b5a4a6SAndroid Build Coastguard Worker    /*
47*57b5a4a6SAndroid Build Coastguard Worker    * This property group is used to build kotlinx.serialization against Kotlin compiler snapshot.
48*57b5a4a6SAndroid Build Coastguard Worker    * When build_snapshot_train is set to true, kotlin_version property is overridden with kotlin_snapshot_version.
49*57b5a4a6SAndroid Build Coastguard Worker    * DO NOT change the name of these properties without adapting kotlinx.train build chain.
50*57b5a4a6SAndroid Build Coastguard Worker    */
51*57b5a4a6SAndroid Build Coastguard Worker    def prop = rootProject.properties['build_snapshot_train']
52*57b5a4a6SAndroid Build Coastguard Worker    ext.build_snapshot_train = prop != null && prop != ""
53*57b5a4a6SAndroid Build Coastguard Worker    if (build_snapshot_train) {
54*57b5a4a6SAndroid Build Coastguard Worker        ext.kotlin_version = rootProject.properties['kotlin_snapshot_version']
55*57b5a4a6SAndroid Build Coastguard Worker        if (kotlin_version == null) {
56*57b5a4a6SAndroid Build Coastguard Worker            throw new IllegalArgumentException("'kotlin_snapshot_version' should be defined when building with snapshot compiler")
57*57b5a4a6SAndroid Build Coastguard Worker        }
58*57b5a4a6SAndroid Build Coastguard Worker        repositories {
59*57b5a4a6SAndroid Build Coastguard Worker            maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
60*57b5a4a6SAndroid Build Coastguard Worker        }
61*57b5a4a6SAndroid Build Coastguard Worker    }
62*57b5a4a6SAndroid Build Coastguard Worker
63*57b5a4a6SAndroid Build Coastguard Worker    repositories {
64*57b5a4a6SAndroid Build Coastguard Worker        maven { url 'https://maven.pkg.jetbrains.space/kotlin/p/dokka/dev' }
65*57b5a4a6SAndroid Build Coastguard Worker        // kotlin-dev with space redirector
66*57b5a4a6SAndroid Build Coastguard Worker        maven { url "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" }
67*57b5a4a6SAndroid Build Coastguard Worker        mavenCentral()
68*57b5a4a6SAndroid Build Coastguard Worker        gradlePluginPortal()
69*57b5a4a6SAndroid Build Coastguard Worker        // For Dokka that depends on kotlinx-html
70*57b5a4a6SAndroid Build Coastguard Worker        maven { url "https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven" }
71*57b5a4a6SAndroid Build Coastguard Worker        mavenLocal()
72*57b5a4a6SAndroid Build Coastguard Worker    }
73*57b5a4a6SAndroid Build Coastguard Worker
74*57b5a4a6SAndroid Build Coastguard Worker    configurations.classpath {
75*57b5a4a6SAndroid Build Coastguard Worker        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
76*57b5a4a6SAndroid Build Coastguard Worker            if (details.requested.group == 'org.jetbrains.kotlin') {
77*57b5a4a6SAndroid Build Coastguard Worker                details.useVersion kotlin_version
78*57b5a4a6SAndroid Build Coastguard Worker            }
79*57b5a4a6SAndroid Build Coastguard Worker        }
80*57b5a4a6SAndroid Build Coastguard Worker    }
81*57b5a4a6SAndroid Build Coastguard Worker
82*57b5a4a6SAndroid Build Coastguard Worker    dependencies {
83*57b5a4a6SAndroid Build Coastguard Worker        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
84*57b5a4a6SAndroid Build Coastguard Worker        classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
85*57b5a4a6SAndroid Build Coastguard Worker        classpath "org.jetbrains.dokka:dokka-gradle-plugin:$dokka_version"
86*57b5a4a6SAndroid Build Coastguard Worker        classpath "org.jetbrains.kotlinx:kover:$kover_version"
87*57b5a4a6SAndroid Build Coastguard Worker        classpath "org.jetbrains.kotlinx:binary-compatibility-validator:$validator_version"
88*57b5a4a6SAndroid Build Coastguard Worker        classpath "org.jetbrains.kotlinx:kotlinx-knit:$knit_version"
89*57b5a4a6SAndroid Build Coastguard Worker        classpath 'ru.vyarus:gradle-animalsniffer-plugin:1.5.3' // Android API check
90*57b5a4a6SAndroid Build Coastguard Worker
91*57b5a4a6SAndroid Build Coastguard Worker        classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
92*57b5a4a6SAndroid Build Coastguard Worker
93*57b5a4a6SAndroid Build Coastguard Worker        // Various benchmarking stuff
94*57b5a4a6SAndroid Build Coastguard Worker        classpath "com.github.jengelman.gradle.plugins:shadow:4.0.2"
95*57b5a4a6SAndroid Build Coastguard Worker        classpath "me.champeau.jmh:jmh-gradle-plugin:0.6.6"
96*57b5a4a6SAndroid Build Coastguard Worker    }
97*57b5a4a6SAndroid Build Coastguard Worker}
98*57b5a4a6SAndroid Build Coastguard Worker
99*57b5a4a6SAndroid Build Coastguard Worker// To make it visible for compiler-version.gradle
100*57b5a4a6SAndroid Build Coastguard Workerext.compilerVersion = org.jetbrains.kotlin.config.KotlinCompilerVersion.VERSION
101*57b5a4a6SAndroid Build Coastguard Workerext.nativeDebugBuild = org.jetbrains.kotlin.gradle.plugin.mpp.NativeBuildType.DEBUG
102*57b5a4a6SAndroid Build Coastguard Worker
103*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'binary-compatibility-validator'
104*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'base'
105*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'kotlinx-knit'
106*57b5a4a6SAndroid Build Coastguard Worker
107*57b5a4a6SAndroid Build Coastguard WorkerapiValidation {
108*57b5a4a6SAndroid Build Coastguard Worker    ignoredProjects += ["benchmark", "guide", "kotlinx-serialization"]
109*57b5a4a6SAndroid Build Coastguard Worker}
110*57b5a4a6SAndroid Build Coastguard Worker
111*57b5a4a6SAndroid Build Coastguard Workerknit {
112*57b5a4a6SAndroid Build Coastguard Worker    siteRoot = "https://kotlinlang.org/api/kotlinx.serialization"
113*57b5a4a6SAndroid Build Coastguard Worker    moduleDocs = "build/dokka/htmlMultiModule"
114*57b5a4a6SAndroid Build Coastguard Worker}
115*57b5a4a6SAndroid Build Coastguard Worker
116*57b5a4a6SAndroid Build Coastguard Worker// Build API docs for all modules with dokka before running Knit
117*57b5a4a6SAndroid Build Coastguard WorkerknitPrepare.dependsOn "dokka"
118*57b5a4a6SAndroid Build Coastguard Worker
119*57b5a4a6SAndroid Build Coastguard Workerapply plugin: 'org.jetbrains.dokka'
120*57b5a4a6SAndroid Build Coastguard Workerdependencies {
121*57b5a4a6SAndroid Build Coastguard Worker    dokkaPlugin("org.jetbrains.kotlinx:dokka-pathsaver-plugin:$knit_version")
122*57b5a4a6SAndroid Build Coastguard Worker}
123*57b5a4a6SAndroid Build Coastguard Worker
124*57b5a4a6SAndroid Build Coastguard Workerallprojects {
125*57b5a4a6SAndroid Build Coastguard Worker    group 'org.jetbrains.kotlinx'
126*57b5a4a6SAndroid Build Coastguard Worker
127*57b5a4a6SAndroid Build Coastguard Worker    def deployVersion = properties['DeployVersion']
128*57b5a4a6SAndroid Build Coastguard Worker    if (deployVersion != null) version = deployVersion
129*57b5a4a6SAndroid Build Coastguard Worker
130*57b5a4a6SAndroid Build Coastguard Worker    if (project.hasProperty("bootstrap")) {
131*57b5a4a6SAndroid Build Coastguard Worker        version = version + '-SNAPSHOT'
132*57b5a4a6SAndroid Build Coastguard Worker    }
133*57b5a4a6SAndroid Build Coastguard Worker
134*57b5a4a6SAndroid Build Coastguard Worker    // the only place where HostManager could be instantiated
135*57b5a4a6SAndroid Build Coastguard Worker    project.ext.hostManager = new org.jetbrains.kotlin.konan.target.HostManager()
136*57b5a4a6SAndroid Build Coastguard Worker
137*57b5a4a6SAndroid Build Coastguard Worker    if (build_snapshot_train) {
138*57b5a4a6SAndroid Build Coastguard Worker        // Snapshot-specific
139*57b5a4a6SAndroid Build Coastguard Worker        repositories {
140*57b5a4a6SAndroid Build Coastguard Worker            mavenLocal()
141*57b5a4a6SAndroid Build Coastguard Worker            maven { url "https://oss.sonatype.org/content/repositories/snapshots" }
142*57b5a4a6SAndroid Build Coastguard Worker        }
143*57b5a4a6SAndroid Build Coastguard Worker    }
144*57b5a4a6SAndroid Build Coastguard Worker
145*57b5a4a6SAndroid Build Coastguard Worker    if (snapshotRepoUrl != null && snapshotRepoUrl != "") {
146*57b5a4a6SAndroid Build Coastguard Worker        // Snapshot-specific for K2 CI configurations
147*57b5a4a6SAndroid Build Coastguard Worker        repositories {
148*57b5a4a6SAndroid Build Coastguard Worker            maven { url snapshotRepoUrl }
149*57b5a4a6SAndroid Build Coastguard Worker        }
150*57b5a4a6SAndroid Build Coastguard Worker    }
151*57b5a4a6SAndroid Build Coastguard Worker
152*57b5a4a6SAndroid Build Coastguard Worker    configurations.all {
153*57b5a4a6SAndroid Build Coastguard Worker        resolutionStrategy.eachDependency { DependencyResolveDetails details ->
154*57b5a4a6SAndroid Build Coastguard Worker            if (details.requested.group == 'org.jetbrains.kotlin') {
155*57b5a4a6SAndroid Build Coastguard Worker                details.useVersion kotlin_version
156*57b5a4a6SAndroid Build Coastguard Worker            }
157*57b5a4a6SAndroid Build Coastguard Worker        }
158*57b5a4a6SAndroid Build Coastguard Worker    }
159*57b5a4a6SAndroid Build Coastguard Worker
160*57b5a4a6SAndroid Build Coastguard Worker    repositories {
161*57b5a4a6SAndroid Build Coastguard Worker        mavenCentral()
162*57b5a4a6SAndroid Build Coastguard Worker        maven { url 'https://maven.pkg.jetbrains.space/kotlin/p/dokka/dev' }
163*57b5a4a6SAndroid Build Coastguard Worker        // kotlin-dev with space redirector
164*57b5a4a6SAndroid Build Coastguard Worker        maven { url "https://cache-redirector.jetbrains.com/maven.pkg.jetbrains.space/kotlin/p/kotlin/dev" }
165*57b5a4a6SAndroid Build Coastguard Worker        // For Dokka that depends on kotlinx-html
166*57b5a4a6SAndroid Build Coastguard Worker        maven { url "https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven" }
167*57b5a4a6SAndroid Build Coastguard Worker        // For local development
168*57b5a4a6SAndroid Build Coastguard Worker        mavenLocal()
169*57b5a4a6SAndroid Build Coastguard Worker
170*57b5a4a6SAndroid Build Coastguard Worker    }
171*57b5a4a6SAndroid Build Coastguard Worker
172*57b5a4a6SAndroid Build Coastguard Worker    tasks.withType(org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile).configureEach {
173*57b5a4a6SAndroid Build Coastguard Worker        compilerOptions { freeCompilerArgs.add("-Xpartial-linkage-loglevel=ERROR") }
174*57b5a4a6SAndroid Build Coastguard Worker    }
175*57b5a4a6SAndroid Build Coastguard Worker    tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinNativeCompile).configureEach {
176*57b5a4a6SAndroid Build Coastguard Worker        compilerOptions { freeCompilerArgs.add("-Xpartial-linkage-loglevel=ERROR") }
177*57b5a4a6SAndroid Build Coastguard Worker    }
178*57b5a4a6SAndroid Build Coastguard Worker}
179*57b5a4a6SAndroid Build Coastguard Worker
180*57b5a4a6SAndroid Build Coastguard Workerdef unpublishedProjects = ["benchmark", "guide", "kotlinx-serialization-json-tests"] as Set
181*57b5a4a6SAndroid Build Coastguard Workerdef excludedFromBomProjects = unpublishedProjects + "kotlinx-serialization-bom" as Set
182*57b5a4a6SAndroid Build Coastguard Workerdef uncoveredProjects = ["kotlinx-serialization-bom", "benchmark", "guide"] as Set
183*57b5a4a6SAndroid Build Coastguard Worker
184*57b5a4a6SAndroid Build Coastguard Workersubprojects {
185*57b5a4a6SAndroid Build Coastguard Worker    tasks.withType(org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile).all { task ->
186*57b5a4a6SAndroid Build Coastguard Worker        if (task.name.contains("Test") || task.name.contains("Jmh")) {
187*57b5a4a6SAndroid Build Coastguard Worker            task.kotlinOptions.freeCompilerArgs += experimentalsInTestEnabled
188*57b5a4a6SAndroid Build Coastguard Worker        } else {
189*57b5a4a6SAndroid Build Coastguard Worker            task.kotlinOptions.freeCompilerArgs += experimentalsEnabled
190*57b5a4a6SAndroid Build Coastguard Worker        }
191*57b5a4a6SAndroid Build Coastguard Worker    }
192*57b5a4a6SAndroid Build Coastguard Worker
193*57b5a4a6SAndroid Build Coastguard Worker    apply from: rootProject.file('gradle/teamcity.gradle')
194*57b5a4a6SAndroid Build Coastguard Worker    // Configure publishing for some artifacts
195*57b5a4a6SAndroid Build Coastguard Worker    if (!unpublishedProjects.contains(project.name)) {
196*57b5a4a6SAndroid Build Coastguard Worker        apply from: rootProject.file('gradle/publishing.gradle')
197*57b5a4a6SAndroid Build Coastguard Worker    }
198*57b5a4a6SAndroid Build Coastguard Worker}
199*57b5a4a6SAndroid Build Coastguard Worker
200*57b5a4a6SAndroid Build Coastguard Workersubprojects {
201*57b5a4a6SAndroid Build Coastguard Worker    // Can't be applied to BOM
202*57b5a4a6SAndroid Build Coastguard Worker    if (excludedFromBomProjects.contains(project.name)) return
203*57b5a4a6SAndroid Build Coastguard Worker
204*57b5a4a6SAndroid Build Coastguard Worker    // Animalsniffer setup
205*57b5a4a6SAndroid Build Coastguard Worker    // Animalsniffer requires java plugin to be applied, but Kotlin 1.9.20
206*57b5a4a6SAndroid Build Coastguard Worker    // relies on `java-base` for Kotlin Multiplatforms `withJava` implementation
207*57b5a4a6SAndroid Build Coastguard Worker    // https://github.com/xvik/gradle-animalsniffer-plugin/issues/84
208*57b5a4a6SAndroid Build Coastguard Worker    // https://youtrack.jetbrains.com/issue/KT-59595
209*57b5a4a6SAndroid Build Coastguard Worker    JavaPluginUtil.applyJavaPlugin(project)
210*57b5a4a6SAndroid Build Coastguard Worker    apply plugin: 'ru.vyarus.animalsniffer'
211*57b5a4a6SAndroid Build Coastguard Worker
212*57b5a4a6SAndroid Build Coastguard Worker    afterEvaluate { // Can be applied only when the project is evaluated
213*57b5a4a6SAndroid Build Coastguard Worker        animalsniffer {
214*57b5a4a6SAndroid Build Coastguard Worker            sourceSets = [sourceSets.main]
215*57b5a4a6SAndroid Build Coastguard Worker            def annotationValue = "kotlinx.serialization.json.internal.SuppressAnimalSniffer"
216*57b5a4a6SAndroid Build Coastguard Worker            switch (name) {
217*57b5a4a6SAndroid Build Coastguard Worker                case "kotlinx-serialization-core":
218*57b5a4a6SAndroid Build Coastguard Worker                    annotationValue = "kotlinx.serialization.internal.SuppressAnimalSniffer"
219*57b5a4a6SAndroid Build Coastguard Worker                    break
220*57b5a4a6SAndroid Build Coastguard Worker                case "kotlinx-serialization-hocon":
221*57b5a4a6SAndroid Build Coastguard Worker                    annotationValue = "kotlinx.serialization.hocon.internal.SuppressAnimalSniffer"
222*57b5a4a6SAndroid Build Coastguard Worker                    break
223*57b5a4a6SAndroid Build Coastguard Worker                case "kotlinx-serialization-protobuf":
224*57b5a4a6SAndroid Build Coastguard Worker                    annotationValue = "kotlinx.serialization.protobuf.internal.SuppressAnimalSniffer"
225*57b5a4a6SAndroid Build Coastguard Worker            }
226*57b5a4a6SAndroid Build Coastguard Worker            annotation = annotationValue
227*57b5a4a6SAndroid Build Coastguard Worker        }
228*57b5a4a6SAndroid Build Coastguard Worker        dependencies {
229*57b5a4a6SAndroid Build Coastguard Worker            signature 'net.sf.androidscents.signature:android-api-level-14:4.0_r4@signature'
230*57b5a4a6SAndroid Build Coastguard Worker            signature 'org.codehaus.mojo.signature:java18:1.0@signature'
231*57b5a4a6SAndroid Build Coastguard Worker        }
232*57b5a4a6SAndroid Build Coastguard Worker
233*57b5a4a6SAndroid Build Coastguard Worker        // Add dependency on kotlinx-serialization-bom inside other kotlinx-serialization modules themselves, so they have same versions
234*57b5a4a6SAndroid Build Coastguard Worker        BomKt.addBomApiDependency(project, ":kotlinx-serialization-bom")
235*57b5a4a6SAndroid Build Coastguard Worker    }
236*57b5a4a6SAndroid Build Coastguard Worker}
237*57b5a4a6SAndroid Build Coastguard Worker
238*57b5a4a6SAndroid Build Coastguard Worker// Kover setup
239*57b5a4a6SAndroid Build Coastguard Workersubprojects {
240*57b5a4a6SAndroid Build Coastguard Worker    if (uncoveredProjects.contains(project.name)) return
241*57b5a4a6SAndroid Build Coastguard Worker
242*57b5a4a6SAndroid Build Coastguard Worker    apply from: rootProject.file("gradle/kover.gradle")
243*57b5a4a6SAndroid Build Coastguard Worker}
244*57b5a4a6SAndroid Build Coastguard Worker
245*57b5a4a6SAndroid Build Coastguard Workerapply from: rootProject.file('gradle/compiler-version.gradle')
246*57b5a4a6SAndroid Build Coastguard Workerapply from: rootProject.file("gradle/dokka.gradle")
247*57b5a4a6SAndroid Build Coastguard Workerapply from: rootProject.file("gradle/benchmark-parsing.gradle")
248*57b5a4a6SAndroid Build Coastguard Worker
249*57b5a4a6SAndroid Build Coastguard Workertasks.named("dokkaHtmlMultiModule") {
250*57b5a4a6SAndroid Build Coastguard Worker    pluginsMapConfiguration.set(["org.jetbrains.dokka.base.DokkaBase": """{ "templatesDir": "${projectDir.toString().replace('\\', '/')}/dokka-templates" }"""])
251*57b5a4a6SAndroid Build Coastguard Worker}
252*57b5a4a6SAndroid Build Coastguard Worker
253*57b5a4a6SAndroid Build Coastguard Workertasks.withType(org.jetbrains.kotlin.gradle.targets.js.npm.tasks.KotlinNpmInstallTask).configureEach {
254*57b5a4a6SAndroid Build Coastguard Worker    args.add("--ignore-engines")
255*57b5a4a6SAndroid Build Coastguard Worker}