Add method to sync options from one instance to another as convention

^KT-57159 In Progress
This commit is contained in:
Yahor Berdnikau
2023-03-09 19:15:17 +01:00
committed by Space Team
parent 4d4e5f4701
commit 6509b0201c
8 changed files with 93 additions and 0 deletions
@@ -746,6 +746,21 @@ private fun Printer.generateCompilerOptionsHelper(
addAdditionalJvmArgs(helperName)
}
println("}")
println()
println("internal fun syncOptionsAsConvention(")
withIndent {
println("from: $type,")
println("into: $type,")
}
println(") {")
withIndent {
if (parentHelperName != null) println("$parentHelperName.syncOptionsAsConvention(from, into)")
for (property in properties) {
println("into.${property.name}.convention(from.${property.name})")
}
}
println("}")
}
}
@@ -29,4 +29,16 @@ internal object KotlinCommonCompilerOptionsHelper {
args.progressiveMode = false
args.useK2 = false
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions,
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsHelper.syncOptionsAsConvention(from, into)
into.apiVersion.convention(from.apiVersion)
into.languageVersion.convention(from.languageVersion)
into.optIn.convention(from.optIn)
into.progressiveMode.convention(from.progressiveMode)
into.useK2.convention(from.useK2)
}
}
@@ -24,4 +24,14 @@ internal object KotlinCommonCompilerToolOptionsHelper {
args.suppressWarnings = false
args.verbose = false
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions,
) {
into.allWarningsAsErrors.convention(from.allWarningsAsErrors)
into.suppressWarnings.convention(from.suppressWarnings)
into.verbose.convention(from.verbose)
into.freeCompilerArgs.convention(from.freeCompilerArgs)
}
}
@@ -47,4 +47,25 @@ internal object KotlinJsCompilerOptionsHelper {
args.typedArrays = true
args.useEsClasses = false
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions,
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.syncOptionsAsConvention(from, into)
into.friendModulesDisabled.convention(from.friendModulesDisabled)
into.main.convention(from.main)
into.metaInfo.convention(from.metaInfo)
into.moduleKind.convention(from.moduleKind)
into.moduleName.convention(from.moduleName)
into.noStdlib.convention(from.noStdlib)
into.outputFile.convention(from.outputFile)
into.sourceMap.convention(from.sourceMap)
into.sourceMapEmbedSources.convention(from.sourceMapEmbedSources)
into.sourceMapNamesPolicy.convention(from.sourceMapNamesPolicy)
into.sourceMapPrefix.convention(from.sourceMapPrefix)
into.target.convention(from.target)
into.typedArrays.convention(from.typedArrays)
into.useEsClasses.convention(from.useEsClasses)
}
}
@@ -23,4 +23,13 @@ internal object KotlinJsDceCompilerToolOptionsHelper {
args.devMode = false
args.outputDirectory = null
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptions,
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsHelper.syncOptionsAsConvention(from, into)
into.devMode.convention(from.devMode)
into.outputDirectory.convention(from.outputDirectory)
}
}
@@ -35,4 +35,15 @@ internal object KotlinJvmCompilerOptionsHelper {
args.noStdlib = true
args.noReflect = true
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions,
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.syncOptionsAsConvention(from, into)
into.javaParameters.convention(from.javaParameters)
into.jvmTarget.convention(from.jvmTarget)
into.moduleName.convention(from.moduleName)
into.noJdk.convention(from.noJdk)
}
}
@@ -19,4 +19,11 @@ internal object KotlinMultiplatformCommonCompilerOptionsHelper {
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions,
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.syncOptionsAsConvention(from, into)
}
}
@@ -21,4 +21,12 @@ internal object KotlinNativeCompilerOptionsHelper {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
args.moduleName = null
}
internal fun syncOptionsAsConvention(
from: org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions,
into: org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions,
) {
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.syncOptionsAsConvention(from, into)
into.moduleName.convention(from.moduleName)
}
}