[Gradle] Make additionalCompilerOptions to be Provider in native tasks

This fixes BC that was introduced previous commits

^KT-43293
This commit is contained in:
Anton Lakotka
2022-08-03 10:07:53 +02:00
committed by Space
parent e07ef85e91
commit 0d3f8cf91a
@@ -23,6 +23,7 @@ import org.gradle.api.file.ProjectLayout
import org.gradle.api.model.ObjectFactory import org.gradle.api.model.ObjectFactory
import org.gradle.api.provider.Property import org.gradle.api.provider.Property
import org.gradle.api.provider.Provider import org.gradle.api.provider.Provider
import org.gradle.api.provider.ProviderFactory
import org.gradle.api.tasks.* import org.gradle.api.tasks.*
import org.gradle.process.ExecOperations import org.gradle.process.ExecOperations
import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments
@@ -193,7 +194,7 @@ abstract class AbstractKotlinNativeCompile<
abstract fun kotlinOptions(fn: Closure<*>) abstract fun kotlinOptions(fn: Closure<*>)
@get:Input @get:Input
abstract val additionalCompilerOptions: Collection<String> abstract val additionalCompilerOptions: Provider<Collection<String>>
@get:Internal @get:Internal
val languageSettings: LanguageSettings by project.provider { val languageSettings: LanguageSettings by project.provider {
@@ -277,7 +278,7 @@ abstract class AbstractKotlinNativeCompile<
override var allWarningsAsErrors = kotlinOptions.allWarningsAsErrors override var allWarningsAsErrors = kotlinOptions.allWarningsAsErrors
override var suppressWarnings = kotlinOptions.suppressWarnings override var suppressWarnings = kotlinOptions.suppressWarnings
override var verbose = kotlinOptions.verbose override var verbose = kotlinOptions.verbose
override var freeCompilerArgs = if (defaultsOnly) emptyList() else additionalCompilerOptions.toList() override var freeCompilerArgs = if (defaultsOnly) emptyList() else additionalCompilerOptions.get().toList()
} }
return buildKotlinNativeCommonArgs( return buildKotlinNativeCommonArgs(
@@ -316,6 +317,7 @@ constructor(
@Transient // can't be serialized for Gradle configuration cache @Transient // can't be serialized for Gradle configuration cache
final override val compilation: KotlinNativeCompilationData<*>, final override val compilation: KotlinNativeCompilationData<*>,
private val objectFactory: ObjectFactory, private val objectFactory: ObjectFactory,
private val providerFactory: ProviderFactory,
private val execOperations: ExecOperations private val execOperations: ExecOperations
) : AbstractKotlinNativeCompile<KotlinCommonOptions, KotlinNativeCompilationData<*>, StubK2NativeCompilerArguments>(objectFactory), ) : AbstractKotlinNativeCompile<KotlinCommonOptions, KotlinNativeCompilationData<*>, StubK2NativeCompilerArguments>(objectFactory),
KotlinCompile<KotlinCommonOptions> { KotlinCompile<KotlinCommonOptions> {
@@ -349,7 +351,7 @@ constructor(
get() = super.outputFile get() = super.outputFile
@get:Input @get:Input
val shortModuleName: String by project.provider { baseName } val shortModuleName: String by providerFactory.provider { baseName }
// Inputs and outputs. // Inputs and outputs.
// region Sources. // region Sources.
@@ -382,12 +384,12 @@ constructor(
// endregion. // endregion.
// region Kotlin options. // region Kotlin options.
override val kotlinOptions: KotlinCommonOptions by project.provider { override val kotlinOptions: KotlinCommonOptions by providerFactory.provider {
compilation.kotlinOptions compilation.kotlinOptions
} }
@get:Input @get:Input
override val additionalCompilerOptions: Collection<String> by lazy { override val additionalCompilerOptions: Provider<Collection<String>> = providerFactory.provider {
kotlinOptions.freeCompilerArgs + ((languageSettings as? DefaultLanguageSettingsBuilder)?.freeCompilerArgs ?: emptyList()) kotlinOptions.freeCompilerArgs + ((languageSettings as? DefaultLanguageSettingsBuilder)?.freeCompilerArgs ?: emptyList())
} }
@@ -435,7 +437,7 @@ constructor(
override var allWarningsAsErrors = kotlinOptions.allWarningsAsErrors override var allWarningsAsErrors = kotlinOptions.allWarningsAsErrors
override var suppressWarnings = kotlinOptions.suppressWarnings override var suppressWarnings = kotlinOptions.suppressWarnings
override var verbose = kotlinOptions.verbose override var verbose = kotlinOptions.verbose
override var freeCompilerArgs = additionalCompilerOptions.toList() override var freeCompilerArgs = additionalCompilerOptions.get().toList()
} }
val plugins = listOfNotNull( val plugins = listOfNotNull(
@@ -478,6 +480,7 @@ constructor(
@Internal @Internal
val binary: NativeBinary, val binary: NativeBinary,
private val objectFactory: ObjectFactory, private val objectFactory: ObjectFactory,
private val providerFactory: ProviderFactory,
private val execOperations: ExecOperations private val execOperations: ExecOperations
) : AbstractKotlinNativeCompile<KotlinCommonToolOptions, KotlinNativeCompilation, StubK2NativeCompilerArguments>(objectFactory) { ) : AbstractKotlinNativeCompile<KotlinCommonToolOptions, KotlinNativeCompilation, StubK2NativeCompilerArguments>(objectFactory) {
@get:Internal @get:Internal
@@ -525,13 +528,15 @@ constructor(
override var freeCompilerArgs: List<String> = listOf() override var freeCompilerArgs: List<String> = listOf()
} }
private val nativeLinkArgs = PropertiesProvider(project).nativeLinkArgs
// We propagate compilation free args to the link task for now (see KT-33717). // We propagate compilation free args to the link task for now (see KT-33717).
@get:Input @get:Input
override val additionalCompilerOptions: Collection<String> by lazy { override val additionalCompilerOptions: Provider<Collection<String>> = providerFactory.provider {
kotlinOptions.freeCompilerArgs + kotlinOptions.freeCompilerArgs +
compilation.kotlinOptions.freeCompilerArgs + compilation.kotlinOptions.freeCompilerArgs +
((languageSettings as? DefaultLanguageSettingsBuilder)?.freeCompilerArgs ?: emptyList()) + ((languageSettings as? DefaultLanguageSettingsBuilder)?.freeCompilerArgs ?: emptyList()) +
PropertiesProvider(project).nativeLinkArgs nativeLinkArgs
} }
override val kotlinOptions: KotlinCommonToolOptions = NativeLinkOptions() override val kotlinOptions: KotlinCommonToolOptions = NativeLinkOptions()
@@ -587,7 +592,7 @@ constructor(
override var allWarningsAsErrors = kotlinOptions.allWarningsAsErrors override var allWarningsAsErrors = kotlinOptions.allWarningsAsErrors
override var suppressWarnings = kotlinOptions.suppressWarnings override var suppressWarnings = kotlinOptions.suppressWarnings
override var verbose = kotlinOptions.verbose override var verbose = kotlinOptions.verbose
override var freeCompilerArgs = additionalCompilerOptions.toList() override var freeCompilerArgs = additionalCompilerOptions.get().toList()
} }
private val externalDependenciesArgs by lazy { ExternalDependenciesBuilder(project, compilation).buildCompilerArgs() } private val externalDependenciesArgs by lazy { ExternalDependenciesBuilder(project, compilation).buildCompilerArgs() }