blob: 12be4aea11796b5dcf275e82797a5ebdf9cceaca [file] [log] [blame] [edit]
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)
}
}