plugins { kotlin("jvm") application id("native-dependencies") } application { mainClass.set("org.jetbrains.kotlin.native.interop.gen.jvm.MainKt") } dependencies { implementation(project(":kotlin-native:Interop:Indexer")) implementation(project(path = ":kotlin-native:endorsedLibraries:kotlinx.cli", configuration = "jvmRuntimeElements")) api(kotlinStdlib()) implementation(project(":kotlinx-metadata-klib")) implementation(project(":native:kotlin-native-utils")) implementation(project(":compiler:util")) implementation(project(":compiler:ir.serialization.common")) testImplementation(kotlinTest("junit")) } sourceSets { "main" { projectDefault() } "test" { projectDefault() } } tasks { // Copy-pasted from Indexer build.gradle.kts. withType().configureEach { val projectsWithNativeLibs = listOf( project(":kotlin-native:Interop:Indexer"), project(":kotlin-native:Interop:Runtime") ) dependsOn(projectsWithNativeLibs.map { "${it.path}:nativelibs" }) dependsOn(nativeDependencies.llvmDependency) systemProperty("java.library.path", projectsWithNativeLibs.joinToString(File.pathSeparator) { it.layout.buildDirectory.dir("nativelibs").get().asFile.absolutePath }) val libclangPath = "${nativeDependencies.llvmPath}/" + if (org.jetbrains.kotlin.konan.target.HostManager.hostIsMingw) { "bin/libclang.dll" } else { "lib/${System.mapLibraryName("clang")}" } systemProperty("kotlin.native.llvm.libclang", libclangPath) systemProperty("kotlin.native.interop.stubgenerator.temp", layout.buildDirectory.dir("stubGeneratorTestTemp").get().asFile) // Set the konan.home property because we run the cinterop tool not from a distribution jar // so it will not be able to determine this path by itself. systemProperty("konan.home", project.project(":kotlin-native").projectDir) environment["LIBCLANG_DISABLE_CRASH_RECOVERY"] = "1" } }