Use KotlinNativeCompilerOptions in KotlinNativeCompile task
^KT-53108 Fixed
This commit is contained in:
committed by
Space Team
parent
96316a4016
commit
40a4845541
+7
-1
@@ -24,6 +24,7 @@ import org.gradle.api.provider.Provider
|
|||||||
import org.gradle.api.tasks.Exec
|
import org.gradle.api.tasks.Exec
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo.KPM
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationInfo.KPM
|
||||||
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.KOTLIN_NATIVE_IGNORE_INCORRECT_DEPENDENCIES
|
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider.Companion.KOTLIN_NATIVE_IGNORE_INCORRECT_DEPENDENCIES
|
||||||
@@ -45,6 +46,7 @@ import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
|
|||||||
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||||
import org.jetbrains.kotlin.gradle.utils.Xcode
|
import org.jetbrains.kotlin.gradle.utils.Xcode
|
||||||
|
import org.jetbrains.kotlin.gradle.utils.klibModuleName
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import org.jetbrains.kotlin.gradle.utils.newInstance
|
import org.jetbrains.kotlin.gradle.utils.newInstance
|
||||||
import org.jetbrains.kotlin.konan.target.HostManager
|
import org.jetbrains.kotlin.konan.target.HostManager
|
||||||
@@ -482,7 +484,10 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
|||||||
val project = compilationInfo.project
|
val project = compilationInfo.project
|
||||||
val compileTaskProvider = project.registerTask<KotlinNativeCompile>(
|
val compileTaskProvider = project.registerTask<KotlinNativeCompile>(
|
||||||
compilationInfo.compileKotlinTaskName,
|
compilationInfo.compileKotlinTaskName,
|
||||||
listOf(compilationInfo)
|
listOf(
|
||||||
|
compilationInfo,
|
||||||
|
compilationInfo.compilerOptions.options as KotlinNativeCompilerOptions
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
it.group = BasePlugin.BUILD_GROUP
|
it.group = BasePlugin.BUILD_GROUP
|
||||||
it.description = "Compiles a klibrary from the '${compilationInfo.compilationName}' " +
|
it.description = "Compiles a klibrary from the '${compilationInfo.compilationName}' " +
|
||||||
@@ -490,6 +495,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotl
|
|||||||
it.enabled = konanTarget.enabledOnCurrentHost
|
it.enabled = konanTarget.enabledOnCurrentHost
|
||||||
|
|
||||||
it.destinationDirectory.set(project.klibOutputDirectory(compilationInfo).resolve("klib"))
|
it.destinationDirectory.set(project.klibOutputDirectory(compilationInfo).resolve("klib"))
|
||||||
|
it.compilerOptions.moduleName.set(project.klibModuleName(it.baseName))
|
||||||
}
|
}
|
||||||
|
|
||||||
compilationInfo.classesDirs.from(compileTaskProvider.map { it.outputFile })
|
compilationInfo.classesDirs.from(compileTaskProvider.map { it.outputFile })
|
||||||
|
|||||||
+4
-3
@@ -7,15 +7,16 @@ package org.jetbrains.kotlin.gradle.targets.native
|
|||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.Project
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsDefault
|
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptionsDefault
|
||||||
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
import org.jetbrains.kotlin.gradle.plugin.HasCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToCompilerOptions
|
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToCompilerOptions
|
||||||
import org.jetbrains.kotlin.project.model.LanguageSettings
|
import org.jetbrains.kotlin.project.model.LanguageSettings
|
||||||
|
|
||||||
class NativeCompilerOptions(project: Project) : HasCompilerOptions<KotlinCommonCompilerOptions> {
|
class NativeCompilerOptions(project: Project) : HasCompilerOptions<KotlinCommonCompilerOptions> {
|
||||||
|
|
||||||
override val options: KotlinCommonCompilerOptions = project.objects
|
override val options: KotlinNativeCompilerOptions = project.objects
|
||||||
.newInstance(KotlinCommonCompilerOptionsDefault::class.java)
|
.newInstance(KotlinNativeCompilerOptionsDefault::class.java)
|
||||||
.apply {
|
.apply {
|
||||||
useK2.finalizeValue()
|
useK2.finalizeValue()
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -9,6 +9,7 @@ import org.gradle.api.file.FileCollection
|
|||||||
import org.gradle.api.file.FileTree
|
import org.gradle.api.file.FileTree
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode
|
import org.jetbrains.kotlin.gradle.plugin.mpp.BitcodeEmbeddingMode
|
||||||
import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions
|
import org.jetbrains.kotlin.gradle.tasks.CompilerPluginOptions
|
||||||
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
import org.jetbrains.kotlin.konan.target.CompilerOutputKind
|
||||||
@@ -37,10 +38,9 @@ internal fun buildKotlinNativeKlibCompilerArgs(
|
|||||||
libraries: List<File>,
|
libraries: List<File>,
|
||||||
|
|
||||||
languageSettings: LanguageSettings,
|
languageSettings: LanguageSettings,
|
||||||
compilerOptions: KotlinCommonCompilerOptions,
|
compilerOptions: KotlinNativeCompilerOptions,
|
||||||
compilerPlugins: List<CompilerPluginData>,
|
compilerPlugins: List<CompilerPluginData>,
|
||||||
|
|
||||||
moduleName: String,
|
|
||||||
shortModuleName: String,
|
shortModuleName: String,
|
||||||
friendModule: FileCollection,
|
friendModule: FileCollection,
|
||||||
libraryVersion: String,
|
libraryVersion: String,
|
||||||
@@ -58,7 +58,7 @@ internal fun buildKotlinNativeKlibCompilerArgs(
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Configure FQ module name to avoid cyclic dependencies in klib manifests (see KT-36721).
|
// Configure FQ module name to avoid cyclic dependencies in klib manifests (see KT-36721).
|
||||||
addArg("-module-name", moduleName)
|
addArg("-module-name", compilerOptions.moduleName.get())
|
||||||
add("-Xshort-module-name=$shortModuleName")
|
add("-Xshort-module-name=$shortModuleName")
|
||||||
|
|
||||||
val friends = friendModule.files
|
val friends = friendModule.files
|
||||||
|
|||||||
+10
-8
@@ -23,6 +23,7 @@ import org.gradle.process.ExecOperations
|
|||||||
import org.gradle.work.NormalizeLineEndings
|
import org.gradle.work.NormalizeLineEndings
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments
|
import org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments
|
||||||
|
import org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments
|
||||||
import org.jetbrains.kotlin.compilerRunner.*
|
import org.jetbrains.kotlin.compilerRunner.*
|
||||||
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCInteropRunner.Companion.run
|
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCInteropRunner.Companion.run
|
||||||
import org.jetbrains.kotlin.gradle.dsl.*
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
@@ -307,12 +308,13 @@ internal constructor(
|
|||||||
@get:Internal
|
@get:Internal
|
||||||
@Transient // can't be serialized for Gradle configuration cache
|
@Transient // can't be serialized for Gradle configuration cache
|
||||||
final override val compilation: KotlinCompilationInfo,
|
final override val compilation: KotlinCompilationInfo,
|
||||||
|
override val compilerOptions: KotlinNativeCompilerOptions,
|
||||||
private val objectFactory: ObjectFactory,
|
private val objectFactory: ObjectFactory,
|
||||||
private val providerFactory: ProviderFactory,
|
private val providerFactory: ProviderFactory,
|
||||||
private val execOperations: ExecOperations
|
private val execOperations: ExecOperations
|
||||||
) : AbstractKotlinNativeCompile<KotlinCommonOptions, StubK2NativeCompilerArguments>(objectFactory),
|
) : AbstractKotlinNativeCompile<KotlinCommonOptions, StubK2NativeCompilerArguments>(objectFactory),
|
||||||
KotlinCompile<KotlinCommonOptions>,
|
KotlinCompile<KotlinCommonOptions>,
|
||||||
KotlinCompilationTask<KotlinCommonCompilerOptions> {
|
KotlinCompilationTask<KotlinNativeCompilerOptions> {
|
||||||
|
|
||||||
@get:Input
|
@get:Input
|
||||||
override val outputKind = LIBRARY
|
override val outputKind = LIBRARY
|
||||||
@@ -332,10 +334,12 @@ internal constructor(
|
|||||||
// Store as an explicit provider in order to allow Gradle Instant Execution to capture the state
|
// Store as an explicit provider in order to allow Gradle Instant Execution to capture the state
|
||||||
// private val allSourceProvider = compilation.map { project.files(it.allSources).asFileTree }
|
// private val allSourceProvider = compilation.map { project.files(it.allSources).asFileTree }
|
||||||
|
|
||||||
@get:Input
|
@Deprecated(
|
||||||
val moduleName: String by lazy {
|
message = "Please use 'compilerOptions.moduleName' to configure",
|
||||||
project.klibModuleName(baseName)
|
replaceWith = ReplaceWith("compilerOptions.moduleName.get()")
|
||||||
}
|
)
|
||||||
|
@get:Internal
|
||||||
|
val moduleName: String get() = compilerOptions.moduleName.get()
|
||||||
|
|
||||||
@get:OutputFile
|
@get:OutputFile
|
||||||
override val outputFile: Provider<File>
|
override val outputFile: Provider<File>
|
||||||
@@ -377,8 +381,7 @@ internal constructor(
|
|||||||
@Input get() = languageSettings.optInAnnotationsInUse
|
@Input get() = languageSettings.optInAnnotationsInUse
|
||||||
// endregion.
|
// endregion.
|
||||||
|
|
||||||
// region Kotlin options.
|
// region Kotlin options
|
||||||
override val compilerOptions: KotlinCommonCompilerOptions = compilation.compilerOptions.options
|
|
||||||
|
|
||||||
override val kotlinOptions: KotlinCommonOptions = object : KotlinCommonOptions {
|
override val kotlinOptions: KotlinCommonOptions = object : KotlinCommonOptions {
|
||||||
override val options: KotlinCommonCompilerOptions
|
override val options: KotlinCommonCompilerOptions
|
||||||
@@ -471,7 +474,6 @@ internal constructor(
|
|||||||
languageSettings,
|
languageSettings,
|
||||||
compilerOptions,
|
compilerOptions,
|
||||||
plugins,
|
plugins,
|
||||||
moduleName,
|
|
||||||
shortModuleName,
|
shortModuleName,
|
||||||
friendModule,
|
friendModule,
|
||||||
artifactVersion,
|
artifactVersion,
|
||||||
|
|||||||
Reference in New Issue
Block a user