1/* 2 * Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. 3 */ 4 5project.ext.nativeMainSets = [] 6project.ext.nativeTestSets = [] 7 8kotlin { 9 targets { 10 delegate.metaClass.addTarget = { preset -> 11 def target = delegate.fromPreset(preset, preset.name) 12 project.ext.nativeMainSets.add(target.compilations['main'].kotlinSourceSets.first()) 13 project.ext.nativeTestSets.add(target.compilations['test'].kotlinSourceSets.first()) 14 } 15 } 16 17 targets { 18 // According to https://kotlinlang.org/docs/native-target-support.html 19 // Tier 1 20 addTarget(presets.linuxX64) 21 addTarget(presets.macosX64) 22 addTarget(presets.macosArm64) 23 addTarget(presets.iosSimulatorArm64) 24 addTarget(presets.iosX64) 25 26 // Tier 2 27 addTarget(presets.linuxArm64) 28 addTarget(presets.watchosSimulatorArm64) 29 addTarget(presets.watchosX64) 30 addTarget(presets.watchosArm32) 31 addTarget(presets.watchosArm64) 32 addTarget(presets.tvosSimulatorArm64) 33 addTarget(presets.tvosX64) 34 addTarget(presets.tvosArm64) 35 addTarget(presets.iosArm64) 36 37 // Tier 3 38 addTarget(presets.androidNativeArm32) 39 addTarget(presets.androidNativeArm64) 40 addTarget(presets.androidNativeX86) 41 addTarget(presets.androidNativeX64) 42 addTarget(presets.mingwX64) 43 addTarget(presets.watchosDeviceArm64) 44 45 // Deprecated, but were provided by coroutine; can be removed only when K/N drops the target 46 addTarget(presets.iosArm32) 47 addTarget(presets.watchosX86) 48 } 49 50 sourceSets { 51 nativeMain { dependsOn commonMain } 52 nativeTest { dependsOn commonTest } 53 54 configure(nativeMainSets) { dependsOn nativeMain } 55 configure(nativeTestSets) { dependsOn nativeTest } 56 } 57} 58