62 lines
1.9 KiB
Kotlin
62 lines
1.9 KiB
Kotlin
import org.jetbrains.kotlin.konan.target.TargetWithSanitizer
|
|
|
|
/*
|
|
* Copyright 2010-2020 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
|
* that can be found in the LICENSE file.
|
|
*/
|
|
|
|
plugins {
|
|
id("kotlin.native.build-tools-conventions")
|
|
id("compile-to-bitcode")
|
|
kotlin("jvm")
|
|
id("native-interop-plugin")
|
|
}
|
|
|
|
bitcode {
|
|
// These are only used in kotlin-native/backend.native/build.gradle where only the host target is needed.
|
|
hostTarget {
|
|
module("files") {
|
|
headersDirs.from(layout.projectDirectory.dir("src/files/headers"))
|
|
sourceSets {
|
|
main {}
|
|
}
|
|
}
|
|
module("env") {
|
|
headersDirs.from(layout.projectDirectory.dir("src/env/headers"))
|
|
sourceSets {
|
|
main {}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
kotlinNativeInterop {
|
|
create("files") {
|
|
pkg("org.jetbrains.kotlin.backend.konan.files")
|
|
linker("clang++")
|
|
linkOutputs(bitcode.hostTarget.module("files").get().sourceSets.main.get().task.get())
|
|
headers(layout.projectDirectory.files("src/files/headers/Files.h"))
|
|
}
|
|
|
|
create("env") {
|
|
pkg("org.jetbrains.kotlin.backend.konan.env")
|
|
linker("clang++")
|
|
linkOutputs(bitcode.hostTarget.module("env").get().sourceSets.main.get().task.get())
|
|
headers(layout.projectDirectory.files("src/env/headers/Env.h"))
|
|
}
|
|
}
|
|
|
|
val nativeLibs by configurations.creating {
|
|
isCanBeConsumed = true
|
|
isCanBeResolved = false
|
|
attributes {
|
|
attribute(ArtifactTypeDefinition.ARTIFACT_TYPE_ATTRIBUTE, ArtifactTypeDefinition.DIRECTORY_TYPE)
|
|
attribute(TargetWithSanitizer.TARGET_ATTRIBUTE, TargetWithSanitizer.host)
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
add(nativeLibs.name, layout.buildDirectory.dir("nativelibs/${TargetWithSanitizer.host}")) {
|
|
builtBy(kotlinNativeInterop["files"].genTask, kotlinNativeInterop["env"].genTask)
|
|
}
|
|
} |