• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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