From ddc2eb79c38f37ef4f93144200ad0183d6711bee Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Tue, 13 Sep 2022 15:05:23 +0300 Subject: [PATCH] [K/N] Convert StubGenerator build script to Kotlin Besides usual pros of kts, it simplifies potential reuse of code from other build.gradle.kts (namely, Interop:Indexer). Also, this commit fixes red code in IDE by adding proper dependencies. --- .../Interop/StubGenerator/build.gradle | 57 ---------------- .../Interop/StubGenerator/build.gradle.kts | 67 +++++++++++++++++++ .../utilities/cli-runner/build.gradle | 1 + 3 files changed, 68 insertions(+), 57 deletions(-) delete mode 100644 kotlin-native/Interop/StubGenerator/build.gradle create mode 100644 kotlin-native/Interop/StubGenerator/build.gradle.kts diff --git a/kotlin-native/Interop/StubGenerator/build.gradle b/kotlin-native/Interop/StubGenerator/build.gradle deleted file mode 100644 index 2195ff5256e..00000000000 --- a/kotlin-native/Interop/StubGenerator/build.gradle +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright 2010-2017 JetBrains s.r.o. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -buildscript { - apply from: "$rootDir/kotlin-native/gradle/kotlinGradlePlugin.gradle" -} - -apply plugin: 'kotlin' -apply plugin: 'application' - -mainClassName = "org.jetbrains.kotlin.native.interop.gen.jvm.MainKt" - -dependencies { - implementation project(":kotlin-native:Interop:Indexer") - implementation project(":kotlin-native:utilities:basic-utils") - api project(path: ":kotlin-native:endorsedLibraries:kotlinx.cli", configuration: "jvmRuntimeElements") - - api project(":kotlin-stdlib") - api project(kotlinCompilerModule) - api project(":kotlinx-metadata-klib") - api project(":native:kotlin-native-utils") - implementation(project(":compiler:util")) - implementation(project(":compiler:ir.serialization.common")) - - testImplementation DependenciesKt.commonDependency(project, "junit") - testImplementation project(":kotlin-test:kotlin-test-junit") -} - -compileKotlin { - kotlinOptions { - freeCompilerArgs = ['-opt-in=kotlin.ExperimentalUnsignedTypes', '-Xskip-metadata-version-check'] - allWarningsAsErrors=true - } -} - -sourceSets{ - main { - kotlin { - srcDir("../../shared/src/library/kotlin") - srcDir("../../shared/src/main/kotlin") - srcDir(VersionGeneratorKt.kotlinNativeVersionSrc(project)) - } - } -} diff --git a/kotlin-native/Interop/StubGenerator/build.gradle.kts b/kotlin-native/Interop/StubGenerator/build.gradle.kts new file mode 100644 index 00000000000..957f1fa4e59 --- /dev/null +++ b/kotlin-native/Interop/StubGenerator/build.gradle.kts @@ -0,0 +1,67 @@ +/* + * Copyright 2010-2022 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +buildscript { + apply(from = "$rootDir/kotlin-native/gradle/kotlinGradlePlugin.gradle") +} + +plugins { + kotlin("jvm") + application +} + +application { + mainClass.set("org.jetbrains.kotlin.native.interop.gen.jvm.MainKt") +} + +dependencies { + implementation(project(":kotlin-native:Interop:Indexer")) + implementation(project(":kotlin-native:utilities:basic-utils")) + implementation(project(":kotlin-native-shared")) + api(project(path = ":kotlin-native:endorsedLibraries:kotlinx.cli", configuration = "jvmRuntimeElements")) + + api(project(":kotlin-stdlib")) + api(project(path = ":kotlin-compiler", configuration = "runtimeElements")) + // It is shadowed by kotlinx-metadata-klib, so to make IDE happy let's use it as compile-only. + compileOnly(project(":kotlinx-metadata")) + api(project(":kotlinx-metadata-klib")) + api(project(":native:kotlin-native-utils")) + implementation(project(":compiler:util")) + implementation(project(":compiler:ir.serialization.common")) + + testImplementation(kotlin("test-junit")) + testImplementation(project(":kotlin-test:kotlin-test-junit")) + // It is shadowed by kotlinx-metadata-klib, so to make IDE happy let's use it as compile-only. + testCompileOnly(project(":kotlinx-metadata")) +} + +tasks { + withType { + kotlinOptions { + freeCompilerArgs = listOf( + "-opt-in=kotlin.ExperimentalUnsignedTypes", + "-Xskip-metadata-version-check" + ) + allWarningsAsErrors = true + } + } +} + +sourceSets { + "main" { + kotlin.srcDir(project.kotlinNativeVersionSrc()) + } +} \ No newline at end of file diff --git a/kotlin-native/utilities/cli-runner/build.gradle b/kotlin-native/utilities/cli-runner/build.gradle index d96db73c3c0..1460d078582 100644 --- a/kotlin-native/utilities/cli-runner/build.gradle +++ b/kotlin-native/utilities/cli-runner/build.gradle @@ -23,4 +23,5 @@ dependencies { implementation project(':kotlin-native:Interop:StubGenerator') implementation project(':kotlin-native:klib') implementation project(":kotlin-native:utilities:basic-utils") + implementation project(":kotlin-native-shared") }