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}