summaryrefslogtreecommitdiff
path: root/plugins/kotlin/idea/tests/testData/gradle/commonizerImportAndCheckHighlighting/libraryNamesAndLevel/p1/build.gradle.kts
blob: 12b99164ed913640399f2493b9e0f4f2f6f1ed52 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget

operator fun KotlinSourceSet.invoke(builder: SourceSetHierarchyBuilder.() -> Unit): KotlinSourceSet {
    SourceSetHierarchyBuilder(this).builder()
    return this
}

class SourceSetHierarchyBuilder(private val node: KotlinSourceSet) {
    operator fun KotlinSourceSet.unaryMinus() = this.dependsOn(node)
}

plugins {
    kotlin("multiplatform")
}

kotlin {

    linuxX64()
    linuxArm64()

    macosX64("macos")

    mingwX64("windowsX64")
    mingwX86("windowsX86")

    val commonMain by sourceSets.getting
    val nativeMain by sourceSets.creating
    val linuxMain by sourceSets.creating
    val linuxX64Main by sourceSets.getting
    val linuxArm64Main by sourceSets.getting
    val macosMain by sourceSets.getting
    val windowsMain by sourceSets.creating
    val windowsX64Main by sourceSets.getting
    val windowsX86Main by sourceSets.getting

    commonMain {
        -nativeMain {
            -macosMain

            -linuxMain {
                -linuxArm64Main
                -linuxX64Main
            }

            -windowsMain {
                -windowsX64Main
                -windowsX86Main
            }
        }
    }

    sourceSets.all {
        languageSettings.useExperimentalAnnotation("kotlin.RequiresOptIn")
    }

    targets.withType<KotlinNativeTarget>().forEach { target ->
        target.compilations.getByName("main").cinterops.create("withPosix") {
            header(file("libs/withPosix.h"))
        }
    }
}