/* * Copyright 2016-2021 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. */ project.ext.nativeMainSets = [] project.ext.nativeTestSets = [] kotlin { targets { delegate.metaClass.addTarget = { preset -> def target = delegate.fromPreset(preset, preset.name) project.ext.nativeMainSets.add(target.compilations['main'].kotlinSourceSets.first()) project.ext.nativeTestSets.add(target.compilations['test'].kotlinSourceSets.first()) } } targets { // According to https://kotlinlang.org/docs/native-target-support.html // Tier 1 addTarget(presets.linuxX64) addTarget(presets.macosX64) addTarget(presets.macosArm64) addTarget(presets.iosSimulatorArm64) addTarget(presets.iosX64) // Tier 2 addTarget(presets.linuxArm64) addTarget(presets.watchosSimulatorArm64) addTarget(presets.watchosX64) addTarget(presets.watchosArm32) addTarget(presets.watchosArm64) addTarget(presets.tvosSimulatorArm64) addTarget(presets.tvosX64) addTarget(presets.tvosArm64) addTarget(presets.iosArm64) // Tier 3 addTarget(presets.androidNativeArm32) addTarget(presets.androidNativeArm64) addTarget(presets.androidNativeX86) addTarget(presets.androidNativeX64) addTarget(presets.mingwX64) addTarget(presets.watchosDeviceArm64) // Deprecated, but were provided by coroutine; can be removed only when K/N drops the target addTarget(presets.iosArm32) addTarget(presets.watchosX86) } sourceSets { nativeMain { dependsOn commonMain } nativeTest { dependsOn commonTest } configure(nativeMainSets) { dependsOn nativeMain } configure(nativeTestSets) { dependsOn nativeTest } } }