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'