diff --git a/kotlin-native/backend.native/backend.native.iml b/kotlin-native/backend.native/backend.native.iml
deleted file mode 100644
index 5bab15c4427..00000000000
--- a/kotlin-native/backend.native/backend.native.iml
+++ /dev/null
@@ -1,14 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/kotlin-native/backend.native/build.gradle b/kotlin-native/backend.native/build.gradle
deleted file mode 100644
index b93210d116d..00000000000
--- a/kotlin-native/backend.native/build.gradle
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
- * Copyright 2010-2023 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.
- */
-
-import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask
-import org.jetbrains.kotlin.gradle.dsl.JvmTarget
-
-
-buildscript {
- apply from: "../../kotlin-native/gradle/kotlinGradlePlugin.gradle"
-}
-
-apply plugin: 'java'
-apply plugin: 'kotlin'
-apply plugin: "maven-publish"
-
-sourceSets {
- compiler {
- kotlin {
- srcDir 'compiler/ir/backend.native/src/'
- }
- resources.srcDir 'compiler/ir/backend.native/resources/'
- }
-}
-
-compileCompilerKotlin {
- compilerOptions.jvmTarget = JvmTarget.JVM_1_8
- compilerOptions.optIn.addAll([
- 'kotlin.RequiresOptIn',
- "kotlinx.cinterop.BetaInteropApi",
- "kotlinx.cinterop.ExperimentalForeignApi",
- "org.jetbrains.kotlin.backend.konan.InternalKotlinNativeApi",
- ])
- compilerOptions.freeCompilerArgs.add('-Xskip-prerelease-check')
-}
-
-tasks.withType(KotlinCompilationTask.class).configureEach {
- compilerOptions.optIn.add("org.jetbrains.kotlin.ir.symbols.UnsafeDuringIrConstructionAPI")
-}
-
-configurations {
- kotlin_compiler_jar
- kotlin_stdlib_jar
- kotlin_reflect_jar
- kotlin_script_runtime_jar
- trove4j_jar
-
- compilerApiElements {
- extendsFrom apiElements
- extendsFrom compilerApi
- }
-}
-
-dependencies {
- kotlin_compiler_jar kotlinCompilerModule
- kotlin_stdlib_jar kotlinStdLibModule
- use(RepoDependencies) {
- trove4j_jar commonDependency("org.jetbrains.intellij.deps:trove4j")
- kotlin_reflect_jar commonDependency("org.jetbrains.kotlin:kotlin-reflect")
- compilerApi(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) { setTransitive(false) }
- compilerApi(commonDependency("org.jetbrains.intellij.deps:log4j")) { setTransitive(false) }
- compilerApi(commonDependency("org.jetbrains.intellij.deps:jdom"))
- compilerApi(commonDependency("com.fasterxml:aalto-xml")) { setTransitive(false) }
- compilerApi(commonDependency("org.codehaus.woodstox:stax2-api")) { setTransitive(false) }
- }
- kotlin_script_runtime_jar project(":kotlin-script-runtime")
-
- compilerApi project(":native:objcexport-header-generator")
- compilerApi project(":native:objcexport-header-generator-k1")
- compilerApi project(":native:base")
-
- compilerApi project(path: ":kotlin-native:llvmInterop", configuration: "llvmInteropStubs")
- compilerApi project(":native:kotlin-native-utils")
- compilerApi project(":core:descriptors")
- compilerApi project(":core:compiler.common.native")
- compilerApi project(":compiler:ir.tree")
- compilerApi project(":compiler:ir.backend.common")
- compilerApi project(":compiler:ir.inline")
- compilerApi project(":compiler:ir.objcinterop")
- compilerApi project(":compiler:util")
- compilerApi project(":native:frontend.native")
- compilerApi project(":compiler:cli-common")
- compilerApi project(":compiler:cli-base")
- compilerApi project(":compiler:cli")
- compilerApi project(":kotlin-util-klib")
- compilerApi project(":kotlin-util-klib-metadata")
- compilerApi project(":compiler:ir.serialization.common")
- compilerApi project(":compiler:ir.serialization.native")
- compilerApi project(":compiler:fir:fir-serialization")
- compilerApi project(":compiler:fir:native")
- compilerApi project(":compiler:ir.psi2ir")
- use(IntellijDependenciesKt) {
- compilerApi(intellijCore())
- compileOnly(jpsModel())
- }
-}
-
-classes.dependsOn 'compilerClasses'
-
-tasks.named("jar") {
- from sourceSets.compiler.output
-
- dependsOn 'external_jars'
-}
-
-def externalJars = ['compiler', 'stdlib', 'reflect', 'script_runtime']
-
-tasks.register("trove4jCopy", Copy) {
- from configurations.named("trove4j_jar") {
- include "trove4j*.jar"
- rename "trove4j(.*).jar", "trove4j.jar"
-
- into 'build/external_jars'
- }
-}
-
-externalJars.each { arg ->
- def jar = arg.replace('_', '-') // :(
- tasks.register("${arg}Copy", Copy) {
- duplicatesStrategy = DuplicatesStrategy.EXCLUDE
- from configurations.named("kotlin_${arg}_jar") {
- include "kotlin-${jar}*.jar"
- rename "kotlin-${jar}(.*).jar", "kotlin-${jar}.jar"
-
- into 'build/external_jars'
- }
- }
-}
-
-tasks.register("external_jars", Copy) {
- dependsOn externalJars.collect { "${it}Copy" }
- dependsOn trove4jCopy
-}
-
-tasks.register("debugCompiler", JavaExec) {
- dependsOn ':dist'
- mainClass = 'org.jetbrains.kotlin.cli.bc.K2NativeKt'
- classpath = project.fileTree("${distDir.canonicalPath}/konan/lib/") {
- include '*.jar'
- }
- jvmArgs "-Dorg.jetbrains.kotlin.native.home=${distDir.canonicalPath}"
- enableAssertions = true
- args = findProperty("konan.debug.args").toString().tokenize() ?: []
-}
-
-RepoArtifacts.sourcesJar(project) {
- it.from(sourceSets["compiler"].allSource)
-}
-
-RepoArtifacts.javadocJar(project)
\ No newline at end of file
diff --git a/kotlin-native/backend.native/compiler/ir/backend.native/build.gradle.kts b/kotlin-native/backend.native/compiler/ir/backend.native/build.gradle.kts
new file mode 100644
index 00000000000..103a9d07e84
--- /dev/null
+++ b/kotlin-native/backend.native/compiler/ir/backend.native/build.gradle.kts
@@ -0,0 +1,61 @@
+import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile
+
+plugins {
+ kotlin("jvm")
+}
+
+dependencies {
+ api(commonDependency("org.jetbrains.intellij.deps.fastutil:intellij-deps-fastutil")) { isTransitive = false }
+ api(commonDependency("org.jetbrains.intellij.deps:log4j")) { isTransitive = false }
+ api(commonDependency("org.jetbrains.intellij.deps:jdom"))
+ api(commonDependency("com.fasterxml:aalto-xml")) { isTransitive = false }
+ api(commonDependency("org.codehaus.woodstox:stax2-api")) { isTransitive = false }
+
+ api(project(":native:objcexport-header-generator"))
+ api(project(":native:objcexport-header-generator-k1"))
+ api(project(":native:base"))
+
+ api(project(":kotlin-native:llvmInterop", "llvmInteropStubs"))
+ api(project(":native:kotlin-native-utils"))
+ api(project(":core:descriptors"))
+ api(project(":core:compiler.common.native"))
+ api(project(":compiler:ir.tree"))
+ api(project(":compiler:ir.backend.common"))
+ api(project(":compiler:ir.inline"))
+ api(project(":compiler:ir.objcinterop"))
+ api(project(":compiler:util"))
+ api(project(":native:frontend.native"))
+ api(project(":compiler:cli-common"))
+ api(project(":compiler:cli-base"))
+ api(project(":compiler:cli"))
+ api(project(":kotlin-util-klib"))
+ api(project(":kotlin-util-klib-metadata"))
+ api(project(":compiler:ir.serialization.common"))
+ api(project(":compiler:ir.serialization.native"))
+ api(project(":compiler:fir:fir-serialization"))
+ api(project(":compiler:fir:native"))
+ api(project(":compiler:ir.psi2ir"))
+
+ api(intellijCore())
+ compileOnly(jpsModel())
+}
+
+tasks.withType().configureEach {
+ compilerOptions.optIn.addAll(
+ listOf(
+ "kotlin.RequiresOptIn",
+ "kotlinx.cinterop.BetaInteropApi",
+ "kotlinx.cinterop.ExperimentalForeignApi",
+ "org.jetbrains.kotlin.backend.konan.InternalKotlinNativeApi",
+ "org.jetbrains.kotlin.ir.symbols.UnsafeDuringIrConstructionAPI"
+ )
+ )
+}
+
+sourceSets {
+ "main" { projectDefault() }
+ "test" { none() }
+}
+
+sourcesJar()
+javadocJar()
\ No newline at end of file
diff --git a/kotlin-native/build.gradle b/kotlin-native/build.gradle
index a47bda96a6a..58f5188f988 100644
--- a/kotlin-native/build.gradle
+++ b/kotlin-native/build.gradle
@@ -168,6 +168,11 @@ configurations {
canBeConsumed = false
canBeResolved = true
}
+
+ trove4j_jar {
+ canBeConsumed = false
+ canBeResolved = true
+ }
}
apply plugin: CompilationDatabasePlugin
@@ -195,6 +200,9 @@ dependencies {
embeddableJar project(path: ':kotlin-native:prepare:kotlin-native-compiler-embeddable', configuration: 'runtimeElements')
nativeLibs project(path: ':kotlin-native:common', configuration: 'nativeLibs')
nativeLibs project(path: ':kotlin-native:llvmInterop', configuration: 'nativeLibs')
+ use(RepoDependencies) {
+ trove4j_jar commonDependency("org.jetbrains.intellij.deps:trove4j")
+ }
}
apply plugin: GitClangFormatPlugin
@@ -284,8 +292,11 @@ tasks.register("distCompiler", Copy) {
into('konan/nativelib')
}
- from(project(':kotlin-native:backend.native').file('build/external_jars/trove4j.jar')) {
- into('konan/lib')
+ from(configurations.trove4j_jar) {
+ include "trove4j*.jar"
+ rename "trove4j(.*).jar", "trove4j.jar"
+
+ into("konan/lib")
}
from(configurations.embeddableJar) {
diff --git a/native/cli-native/build.gradle.kts b/native/cli-native/build.gradle.kts
index 5c30a95abf5..c71c5eaa997 100644
--- a/native/cli-native/build.gradle.kts
+++ b/native/cli-native/build.gradle.kts
@@ -3,7 +3,7 @@ plugins {
}
dependencies {
- api(project(":kotlin-native:backend.native", "compilerApiElements"))
+ api(project(":kotlin-native:backend.native"))
}
sourceSets {
diff --git a/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts b/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts
index ed863cdaa1d..ff647f52450 100644
--- a/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts
+++ b/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts
@@ -33,8 +33,8 @@ idePluginDependency {
embedded(project(":compiler:fir:native")) { isTransitive = false }
proguardLibraryJars(project(":native:kotlin-native-utils")) { isTransitive = false }
- proguardLibraryJars(project(":kotlin-native:backend.native", "kotlin_stdlib_jar"))
- proguardLibraryJars(project(":kotlin-native:backend.native", "kotlin_reflect_jar"))
+ proguardLibraryJars(project(":kotlin-stdlib"))
+ proguardLibraryJars(commonDependency("org.jetbrains.kotlin:kotlin-reflect"))
proguardLibraryJars(project(":native:cli-native"))
backendNativeSourcesConfiguration(project(":kotlin-native:backend.native"))
backendNativeSourcesConfiguration(project(":native:cli-native"))
diff --git a/settings.gradle b/settings.gradle
index e78a56bb456..0e74111e91b 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -882,6 +882,7 @@ if (buildProperties.isKotlinNativeEnabled) {
include ':kotlin-native:endorsedLibraries:kotlinx.cli'
include ':kotlin-native:Interop:StubGenerator'
include ':kotlin-native:backend.native'
+ project(':kotlin-native:backend.native').projectDir = "$rootDir/kotlin-native/backend.native/compiler/ir/backend.native" as File
include ':kotlin-native:Interop:Runtime'
include ':kotlin-native:Interop:Indexer'
include ':kotlin-native:Interop:JsRuntime'
@@ -897,6 +898,7 @@ if (buildProperties.isKotlinNativeEnabled) {
include ':kotlin-native:libclangext'
include ':kotlin-native:llvmInterop'
include ':kotlin-native:backend.native:tests'
+ project(':kotlin-native:backend.native:tests').projectDir = "$rootDir/kotlin-native/backend.native/tests" as File
include ':kotlin-native:prepare:kotlin-native-compiler-embeddable'
include ':native:kotlin-test-native-xctest'
include ':native:cli-native'