From d433d1eb3fb99011120ec193e74d6cbd42995552 Mon Sep 17 00:00:00 2001 From: Sergey Bogolepov Date: Wed, 21 Jun 2023 17:30:50 +0300 Subject: [PATCH] KT-58862: Remove cinterop -mode option metadata cinterop libraries perform pretty well for years, so we can drop this flag. --- .../kotlin/native/interop/gen/jvm/CommandLine.kt | 6 ------ .../kotlin/native/interop/gen/jvm/main.kt | 16 ++++------------ .../jetbrains/kotlin/NativeInteropPlugin.groovy | 3 --- .../cli/utilities/GeneratePlatformLibraries.kt | 13 +------------ .../native/NativeDownloadAndPlatformLibsIT.kt | 14 -------------- .../kotlin/gradle/testbase/BuildOptions.kt | 4 ---- .../kotlin/gradle/plugin/PropertiesProvider.kt | 7 ------- .../internal/PlatformLibrariesGenerator.kt | 9 --------- 8 files changed, 5 insertions(+), 67 deletions(-) diff --git a/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/CommandLine.kt b/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/CommandLine.kt index 1dc5e740a2f..d534bc4dc43 100644 --- a/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/CommandLine.kt +++ b/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/CommandLine.kt @@ -53,8 +53,6 @@ open class CommonInteropArguments(val argParser: ArgParser) { .default("unspecified") val repo by argParser.option(ArgType.String, shortName = "r", description = "repository to resolve dependencies") .multiple() - val mode by argParser.option(ArgType.Choice(), description = "the way interop library is generated") - .default(DEFAULT_MODE) val nodefaultlibs by argParser.option(ArgType.Boolean, NODEFAULTLIBS, description = "don't link the libraries from dist/klib automatically").default(false) val nodefaultlibsDeprecated by argParser.option(ArgType.Boolean, NODEFAULTLIBS_DEPRECATED, @@ -76,10 +74,6 @@ open class CommonInteropArguments(val argParser: ArgParser) { fullName = "Xoverride-konan-properties", description = "Override konan.properties.values" ).multiple().delimiter(";") - - companion object { - val DEFAULT_MODE = GenerationMode.METADATA - } } open class CInteropArguments(argParser: ArgParser = diff --git a/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt b/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt index 8133dd73216..951a1a211f3 100644 --- a/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt +++ b/kotlin-native/Interop/StubGenerator/src/main/kotlin/org/jetbrains/kotlin/native/interop/gen/jvm/main.kt @@ -291,17 +291,6 @@ private fun processCLib( val outKtPkg = fqParts.joinToString(".") - val mode = run { - val providedMode = cinteropArguments.mode - - if (providedMode == GenerationMode.METADATA && flavor == KotlinPlatform.JVM) { - warn("Metadata mode isn't supported for Kotlin/JVM! Falling back to sourcecode.") - GenerationMode.SOURCE_CODE - } else { - providedMode - } - } - val resolver = getLibraryResolver(cinteropArguments, tool.target) val allLibraryDependencies = when (flavor) { @@ -349,7 +338,10 @@ private fun processCLib( } else { {} } - + val mode = when (flavor) { + KotlinPlatform.JVM -> GenerationMode.SOURCE_CODE + KotlinPlatform.NATIVE -> GenerationMode.METADATA + } val stubIrContext = StubIrContext(logger, configuration, nativeIndex, imports, flavor, mode, libName, plugin) val stubIrOutput = run { val outKtFileCreator = { diff --git a/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy b/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy index d5237305e5d..2871a795c25 100644 --- a/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy +++ b/kotlin-native/build-tools/src/main/groovy/org/jetbrains/kotlin/NativeInteropPlugin.groovy @@ -228,9 +228,6 @@ class NamedNativeInteropConfig implements Named { args '-natives', nativeLibsDir args '-Xtemporary-files-dir', temporaryFilesDir args '-flavor', this.flavor - if (flavor == "jvm") { - args '-mode', 'sourcecode' - } // Uncomment to debug. // args '-verbose', 'true' diff --git a/kotlin-native/utilities/cli-runner/src/main/kotlin/org/jetbrains/kotlin/cli/utilities/GeneratePlatformLibraries.kt b/kotlin-native/utilities/cli-runner/src/main/kotlin/org/jetbrains/kotlin/cli/utilities/GeneratePlatformLibraries.kt index 467a625e36a..1308ebe90bd 100644 --- a/kotlin-native/utilities/cli-runner/src/main/kotlin/org/jetbrains/kotlin/cli/utilities/GeneratePlatformLibraries.kt +++ b/kotlin-native/utilities/cli-runner/src/main/kotlin/org/jetbrains/kotlin/cli/utilities/GeneratePlatformLibraries.kt @@ -16,9 +16,7 @@ import org.jetbrains.kotlin.konan.target.* import org.jetbrains.kotlin.konan.util.KonanHomeProvider import org.jetbrains.kotlin.konan.util.PlatformLibsInfo import org.jetbrains.kotlin.konan.util.visibleName -import org.jetbrains.kotlin.native.interop.gen.jvm.GenerationMode import org.jetbrains.kotlin.native.interop.gen.jvm.parseKeyValuePairs -import org.jetbrains.kotlin.native.interop.tool.CommonInteropArguments.Companion.DEFAULT_MODE import org.jetbrains.kotlin.native.interop.tool.SHORT_MODULE_NAME import java.io.PrintWriter import java.io.StringWriter @@ -66,7 +64,7 @@ private enum class CacheKind(val outputKind: CompilerOutputKind) { STATIC_CACHE(CompilerOutputKind.STATIC_CACHE) } -private class CInteropOptions(val mode: GenerationMode, val additionalArguments: List) +private class CInteropOptions(val additionalArguments: List) // TODO: Use Distribution's paths after compiler update. fun generatePlatformLibraries(args: Array) = usingNativeMemoryAllocator { @@ -101,13 +99,6 @@ fun generatePlatformLibraries(args: Array) = usingNativeMemoryAllocator val cacheDirectoryPath by argParser.option( ArgType.String, "cache-directory", "c", "Cache output directory") - val mode by argParser.option( - ArgType.Choice(), - fullName = "mode", - shortName = "m", - description = "The way interop library is generated." - ).default(DEFAULT_MODE) - val verbose by argParser.option( ArgType.Boolean, "verbose", "v", @@ -167,7 +158,6 @@ fun generatePlatformLibraries(args: Array) = usingNativeMemoryAllocator } val cinteropOptions = CInteropOptions( - mode, additionalArguments = buildList { if (overrideKonanProperties.isNotEmpty()) { add("-Xoverride-konan-properties") @@ -270,7 +260,6 @@ private fun generateLibrary( "-compiler-option", "-fmodules-cache-path=${tmpDirectory.child("clangModulesCache").absolutePath}", "-repo", outputDirectory.absolutePath, "-no-default-libs", "-no-endorsed-libs", "-Xpurge-user-libs", "-nopack", - "-mode", cinteropOptions.mode.modeName, *cinteropOptions.additionalArguments.toTypedArray(), "-$SHORT_MODULE_NAME", def.shortLibraryName, *def.depends.flatMap { listOf("-l", "$outputDirectory/${it.libraryName}") }.toTypedArray() diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt index 17714ce7150..eee7136fbf0 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt @@ -173,20 +173,6 @@ class NativeDownloadAndPlatformLibsIT : BaseGradleIT() { } } - @Test - fun testSettingGenerationMode() = with(platformLibrariesProject("linuxX64")) { - // Check that user can change generation mode used by the cinterop tool. - buildWithLightDist("tasks", "-Pkotlin.native.platform.libraries.mode=metadata") { - assertSuccessful() - assertTrue( - extractNativeCompilerCommandLineArguments( - taskOutput = output, - toolName = NativeToolKind.GENERATE_PLATFORM_LIBRARIES - ).containsSequentially("-mode", "metadata") - ) - } - } - @Test fun testCompilerReinstallation() = with(platformLibrariesProject("linuxX64")) { // Install the compiler at the first time. Don't build to reduce execution time. diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt index 7d60af4dae3..11fe8b16c11 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/testbase/BuildOptions.kt @@ -73,7 +73,6 @@ data class BuildOptions( val cocoapodsArchs: String? = null, val distributionType: String? = null, val distributionDownloadFromMaven: Boolean? = null, - val platformLibrariesMode: String? = null, val reinstall: Boolean? = null, val restrictedDistribution: Boolean? = null, val useXcodeMessageStyle: Boolean? = null, @@ -219,9 +218,6 @@ data class BuildOptions( nativeOptions.distributionType?.let { arguments.add("-Pkotlin.native.distribution.type=${it}") } - nativeOptions.platformLibrariesMode?.let { - arguments.add("-Pkotlin.native.platform.libraries.mode=${it}") - } nativeOptions.reinstall?.let { arguments.add("-Pkotlin.native.reinstall=${it}") } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt index a5084b7652c..529247f5430 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/plugin/PropertiesProvider.kt @@ -303,13 +303,6 @@ internal class PropertiesProvider private constructor(private val project: Proje val nativeDownloadFromMaven: Boolean get() = this.booleanProperty("kotlin.native.distribution.downloadFromMaven") ?: false - /** - * Allows a user to force a particular cinterop mode for platform libraries generation. Available modes: sourcecode, metadata. - * A main purpose of this property is working around potential problems with the metadata mode. - */ - val nativePlatformLibrariesMode: String? - get() = this.property("kotlin.native.platform.libraries.mode") - /** * Allows a user to provide a local Kotlin/Native distribution instead of a downloaded one. */ diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/PlatformLibrariesGenerator.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/PlatformLibrariesGenerator.kt index 69819af880f..61f34612e8c 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/PlatformLibrariesGenerator.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/internal/PlatformLibrariesGenerator.kt @@ -46,10 +46,6 @@ internal class PlatformLibrariesGenerator(val project: Project, val konanTarget: private val shouldBuildCaches: Boolean = konanPropertiesService.cacheWorksFor(konanTarget) && konanCacheKind != NativeCacheKind.NONE - private val mode: String? by lazy { - PropertiesProvider(project).nativePlatformLibrariesMode - } - private val presentDefs: Set by lazy { defDirectory .listFiles { file -> file.extension == "def" }.orEmpty() @@ -126,11 +122,6 @@ internal class PlatformLibrariesGenerator(val project: Project, val konanTarget: args.addArg("-cache-arg", it) } } - - mode?.let { - args.addArg("-mode", it) - } - KotlinNativeLibraryGenerationRunner.fromProject(this).run(args) }