Split compiler options implementation and helper methods
Such split allows to reuse default implementation for different use-cases. Helpers, in this case, allows to do manipulations with options where required. ^KT-57159 In Progress
This commit is contained in:
committed by
Space Team
parent
2086c5348b
commit
4d4e5f4701
+161
-36
@@ -36,17 +36,23 @@ private data class GeneratedOptions(
|
|||||||
val properties: List<KProperty1<*, *>>
|
val properties: List<KProperty1<*, *>>
|
||||||
)
|
)
|
||||||
|
|
||||||
|
private data class GeneratedImplOptions(
|
||||||
|
val baseImplName: FqName,
|
||||||
|
val helperName: FqName
|
||||||
|
)
|
||||||
|
|
||||||
private const val GRADLE_API_SRC_DIR = "libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin"
|
private const val GRADLE_API_SRC_DIR = "libraries/tools/kotlin-gradle-plugin-api/src/common/kotlin"
|
||||||
private const val GRADLE_PLUGIN_SRC_DIR = "libraries/tools/kotlin-gradle-plugin/src/common/kotlin"
|
private const val GRADLE_PLUGIN_SRC_DIR = "libraries/tools/kotlin-gradle-plugin/src/common/kotlin"
|
||||||
private const val OPTIONS_PACKAGE_PREFIX = "org.jetbrains.kotlin.gradle.dsl"
|
private const val OPTIONS_PACKAGE_PREFIX = "org.jetbrains.kotlin.gradle.dsl"
|
||||||
private const val IMPLEMENTATION_SUFFIX = "Default"
|
private const val IMPLEMENTATION_SUFFIX = "Default"
|
||||||
|
private const val IMPLEMENTATION_HELPERS_SUFFIX = "Helper"
|
||||||
|
|
||||||
fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit) {
|
fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit) {
|
||||||
val apiSrcDir = File(GRADLE_API_SRC_DIR)
|
val apiSrcDir = File(GRADLE_API_SRC_DIR)
|
||||||
val srcDir = File(GRADLE_PLUGIN_SRC_DIR)
|
val srcDir = File(GRADLE_PLUGIN_SRC_DIR)
|
||||||
|
|
||||||
val commonToolOptions = generateKotlinCommonToolOptions(apiSrcDir, withPrinterToFile)
|
val commonToolOptions = generateKotlinCommonToolOptions(apiSrcDir, withPrinterToFile)
|
||||||
val commonToolImplFqName = generateKotlinCommonToolOptionsImpl(
|
val commonToolImplOptions = generateKotlinCommonToolOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
commonToolOptions.optionsName,
|
commonToolOptions.optionsName,
|
||||||
commonToolOptions.properties,
|
commonToolOptions.properties,
|
||||||
@@ -58,10 +64,11 @@ fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.()
|
|||||||
commonToolOptions,
|
commonToolOptions,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
val commonCompilerOptionsImplFqName = generateKotlinCommonOptionsImpl(
|
val commonCompilerOptionsImpl = generateKotlinCommonOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
commonCompilerOptions.optionsName,
|
commonCompilerOptions.optionsName,
|
||||||
commonToolImplFqName,
|
commonToolImplOptions.baseImplName,
|
||||||
|
commonToolImplOptions.helperName,
|
||||||
commonCompilerOptions.properties,
|
commonCompilerOptions.properties,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
@@ -74,7 +81,8 @@ fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.()
|
|||||||
generateKotlinJvmOptionsImpl(
|
generateKotlinJvmOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
jvmOptions.optionsName,
|
jvmOptions.optionsName,
|
||||||
commonCompilerOptionsImplFqName,
|
commonCompilerOptionsImpl.baseImplName,
|
||||||
|
commonCompilerOptionsImpl.helperName,
|
||||||
jvmOptions.properties,
|
jvmOptions.properties,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
@@ -87,7 +95,8 @@ fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.()
|
|||||||
generateKotlinJsOptionsImpl(
|
generateKotlinJsOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
jsOptions.optionsName,
|
jsOptions.optionsName,
|
||||||
commonCompilerOptionsImplFqName,
|
commonCompilerOptionsImpl.baseImplName,
|
||||||
|
commonCompilerOptionsImpl.helperName,
|
||||||
jsOptions.properties,
|
jsOptions.properties,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
@@ -100,7 +109,8 @@ fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.()
|
|||||||
generateKotlinNativeOptionsImpl(
|
generateKotlinNativeOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
nativeOptions.optionsName,
|
nativeOptions.optionsName,
|
||||||
commonCompilerOptionsImplFqName,
|
commonCompilerOptionsImpl.baseImplName,
|
||||||
|
commonCompilerOptionsImpl.helperName,
|
||||||
nativeOptions.properties,
|
nativeOptions.properties,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
@@ -113,7 +123,8 @@ fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.()
|
|||||||
generateJsDceOptionsImpl(
|
generateJsDceOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
jsDceOptions.optionsName,
|
jsDceOptions.optionsName,
|
||||||
commonCompilerOptionsImplFqName,
|
commonToolImplOptions.baseImplName,
|
||||||
|
commonToolImplOptions.helperName,
|
||||||
jsDceOptions.properties,
|
jsDceOptions.properties,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
@@ -126,7 +137,8 @@ fun generateKotlinGradleOptions(withPrinterToFile: (targetFile: File, Printer.()
|
|||||||
generateMultiplatformCommonOptionsImpl(
|
generateMultiplatformCommonOptionsImpl(
|
||||||
srcDir,
|
srcDir,
|
||||||
multiplatformCommonOptions.optionsName,
|
multiplatformCommonOptions.optionsName,
|
||||||
commonCompilerOptionsImplFqName,
|
commonCompilerOptionsImpl.baseImplName,
|
||||||
|
commonCompilerOptionsImpl.helperName,
|
||||||
multiplatformCommonOptions.properties,
|
multiplatformCommonOptions.properties,
|
||||||
withPrinterToFile
|
withPrinterToFile
|
||||||
)
|
)
|
||||||
@@ -182,20 +194,32 @@ private fun generateKotlinCommonToolOptionsImpl(
|
|||||||
commonToolOptionsInterfaceFqName: FqName,
|
commonToolOptionsInterfaceFqName: FqName,
|
||||||
options: List<KProperty1<*, *>>,
|
options: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
): FqName {
|
): GeneratedImplOptions {
|
||||||
val k2CommonToolCompilerArgumentsFqName = FqName(CommonToolArguments::class.qualifiedName!!)
|
val commonToolBaseImplFqName = FqName("${commonToolOptionsInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
val commonToolImplFqName = FqName("${commonToolOptionsInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
withPrinterToFile(fileFromFqName(srcDir, commonToolBaseImplFqName)) {
|
||||||
withPrinterToFile(fileFromFqName(srcDir, commonToolImplFqName)) {
|
|
||||||
generateImpl(
|
generateImpl(
|
||||||
commonToolImplFqName,
|
commonToolBaseImplFqName,
|
||||||
null,
|
null,
|
||||||
commonToolOptionsInterfaceFqName,
|
commonToolOptionsInterfaceFqName,
|
||||||
k2CommonToolCompilerArgumentsFqName,
|
|
||||||
options,
|
options,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return commonToolImplFqName
|
val k2CommonToolCompilerArgumentsFqName = FqName(CommonToolArguments::class.qualifiedName!!)
|
||||||
|
val commonToolCompilerArgsImplFqName = FqName(
|
||||||
|
"${commonToolOptionsInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, commonToolCompilerArgsImplFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
commonToolOptionsInterfaceFqName,
|
||||||
|
commonToolCompilerArgsImplFqName,
|
||||||
|
null,
|
||||||
|
k2CommonToolCompilerArgumentsFqName,
|
||||||
|
options
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return GeneratedImplOptions(commonToolBaseImplFqName, commonToolCompilerArgsImplFqName)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateKotlinCommonOptions(
|
private fun generateKotlinCommonOptions(
|
||||||
@@ -233,22 +257,35 @@ private fun generateKotlinCommonOptionsImpl(
|
|||||||
srcDir: File,
|
srcDir: File,
|
||||||
commonOptionsInterfaceFqName: FqName,
|
commonOptionsInterfaceFqName: FqName,
|
||||||
commonToolImpl: FqName,
|
commonToolImpl: FqName,
|
||||||
|
commonToolCompilerHelperName: FqName,
|
||||||
options: List<KProperty1<*, *>>,
|
options: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
): FqName {
|
): GeneratedImplOptions {
|
||||||
val k2CommonCompilerArgumentsFqName = FqName(CommonCompilerArguments::class.qualifiedName!!)
|
|
||||||
val commonCompilerImplFqName = FqName("${commonOptionsInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
val commonCompilerImplFqName = FqName("${commonOptionsInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
withPrinterToFile(fileFromFqName(srcDir, commonCompilerImplFqName)) {
|
withPrinterToFile(fileFromFqName(srcDir, commonCompilerImplFqName)) {
|
||||||
generateImpl(
|
generateImpl(
|
||||||
commonCompilerImplFqName,
|
commonCompilerImplFqName,
|
||||||
commonToolImpl,
|
commonToolImpl,
|
||||||
commonOptionsInterfaceFqName,
|
commonOptionsInterfaceFqName,
|
||||||
k2CommonCompilerArgumentsFqName,
|
|
||||||
options,
|
options,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return commonCompilerImplFqName
|
val k2CommonCompilerArgumentsFqName = FqName(CommonCompilerArguments::class.qualifiedName!!)
|
||||||
|
val commonCompilerHelperFqName = FqName(
|
||||||
|
"${commonOptionsInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, commonCompilerHelperFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
commonOptionsInterfaceFqName,
|
||||||
|
commonCompilerHelperFqName,
|
||||||
|
commonToolCompilerHelperName,
|
||||||
|
k2CommonCompilerArgumentsFqName,
|
||||||
|
options
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return GeneratedImplOptions(commonCompilerImplFqName, commonCompilerHelperFqName)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun generateKotlinJvmOptions(
|
private fun generateKotlinJvmOptions(
|
||||||
@@ -286,16 +323,29 @@ private fun generateKotlinJvmOptionsImpl(
|
|||||||
srcDir: File,
|
srcDir: File,
|
||||||
jvmInterfaceFqName: FqName,
|
jvmInterfaceFqName: FqName,
|
||||||
commonCompilerImpl: FqName,
|
commonCompilerImpl: FqName,
|
||||||
|
commonCompilerHelperName: FqName,
|
||||||
jvmOptions: List<KProperty1<*, *>>,
|
jvmOptions: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
) {
|
) {
|
||||||
val k2JvmCompilerArgumentsFqName = FqName(K2JVMCompilerArguments::class.qualifiedName!!)
|
|
||||||
val jvmImplFqName = FqName("${jvmInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
val jvmImplFqName = FqName("${jvmInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
withPrinterToFile(fileFromFqName(srcDir, jvmImplFqName)) {
|
withPrinterToFile(fileFromFqName(srcDir, jvmImplFqName)) {
|
||||||
generateImpl(
|
generateImpl(
|
||||||
jvmImplFqName,
|
jvmImplFqName,
|
||||||
commonCompilerImpl,
|
commonCompilerImpl,
|
||||||
jvmInterfaceFqName,
|
jvmInterfaceFqName,
|
||||||
|
jvmOptions
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val k2JvmCompilerArgumentsFqName = FqName(K2JVMCompilerArguments::class.qualifiedName!!)
|
||||||
|
val jvmCompilerOptionsHelperFqName = FqName(
|
||||||
|
"${jvmInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, jvmCompilerOptionsHelperFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
jvmInterfaceFqName,
|
||||||
|
jvmCompilerOptionsHelperFqName,
|
||||||
|
commonCompilerHelperName,
|
||||||
k2JvmCompilerArgumentsFqName,
|
k2JvmCompilerArgumentsFqName,
|
||||||
jvmOptions
|
jvmOptions
|
||||||
)
|
)
|
||||||
@@ -337,16 +387,29 @@ private fun generateKotlinJsOptionsImpl(
|
|||||||
srcDir: File,
|
srcDir: File,
|
||||||
jsInterfaceFqName: FqName,
|
jsInterfaceFqName: FqName,
|
||||||
commonCompilerImpl: FqName,
|
commonCompilerImpl: FqName,
|
||||||
|
commonCompilerHelperName: FqName,
|
||||||
jsOptions: List<KProperty1<*, *>>,
|
jsOptions: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
) {
|
) {
|
||||||
val k2JsCompilerArgumentsFqName = FqName(K2JSCompilerArguments::class.qualifiedName!!)
|
|
||||||
val jsImplFqName = FqName("${jsInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
val jsImplFqName = FqName("${jsInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
withPrinterToFile(fileFromFqName(srcDir, jsImplFqName)) {
|
withPrinterToFile(fileFromFqName(srcDir, jsImplFqName)) {
|
||||||
generateImpl(
|
generateImpl(
|
||||||
jsImplFqName,
|
jsImplFqName,
|
||||||
commonCompilerImpl,
|
commonCompilerImpl,
|
||||||
jsInterfaceFqName,
|
jsInterfaceFqName,
|
||||||
|
jsOptions
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val k2JsCompilerArgumentsFqName = FqName(K2JSCompilerArguments::class.qualifiedName!!)
|
||||||
|
val jsCompilerOptionsHelperFqName = FqName(
|
||||||
|
"${jsInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, jsCompilerOptionsHelperFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
jsInterfaceFqName,
|
||||||
|
jsCompilerOptionsHelperFqName,
|
||||||
|
commonCompilerHelperName,
|
||||||
k2JsCompilerArgumentsFqName,
|
k2JsCompilerArgumentsFqName,
|
||||||
jsOptions
|
jsOptions
|
||||||
)
|
)
|
||||||
@@ -378,16 +441,29 @@ private fun generateKotlinNativeOptionsImpl(
|
|||||||
srcDir: File,
|
srcDir: File,
|
||||||
nativeInterfaceFqName: FqName,
|
nativeInterfaceFqName: FqName,
|
||||||
commonCompilerImpl: FqName,
|
commonCompilerImpl: FqName,
|
||||||
|
commonCompilerHelper: FqName,
|
||||||
nativeOptions: List<KProperty1<*, *>>,
|
nativeOptions: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
) {
|
) {
|
||||||
val k2NativeCompilerArgumentsFqName = FqName(K2NativeCompilerArguments::class.qualifiedName!!)
|
|
||||||
val nativeImplFqName = FqName("${nativeInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
val nativeImplFqName = FqName("${nativeInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
withPrinterToFile(fileFromFqName(srcDir, nativeImplFqName)) {
|
withPrinterToFile(fileFromFqName(srcDir, nativeImplFqName)) {
|
||||||
generateImpl(
|
generateImpl(
|
||||||
nativeImplFqName,
|
nativeImplFqName,
|
||||||
commonCompilerImpl,
|
commonCompilerImpl,
|
||||||
nativeInterfaceFqName,
|
nativeInterfaceFqName,
|
||||||
|
nativeOptions
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val k2NativeCompilerArgumentsFqName = FqName(K2NativeCompilerArguments::class.qualifiedName!!)
|
||||||
|
val nativeCompilerOptionsHelperFqName = FqName(
|
||||||
|
"${nativeInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, nativeCompilerOptionsHelperFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
nativeInterfaceFqName,
|
||||||
|
nativeCompilerOptionsHelperFqName,
|
||||||
|
commonCompilerHelper,
|
||||||
k2NativeCompilerArgumentsFqName,
|
k2NativeCompilerArgumentsFqName,
|
||||||
nativeOptions
|
nativeOptions
|
||||||
)
|
)
|
||||||
@@ -429,17 +505,30 @@ private fun generateJsDceOptions(
|
|||||||
private fun generateJsDceOptionsImpl(
|
private fun generateJsDceOptionsImpl(
|
||||||
srcDir: File,
|
srcDir: File,
|
||||||
jsDceInterfaceFqName: FqName,
|
jsDceInterfaceFqName: FqName,
|
||||||
commonCompilerImpl: FqName,
|
commonToolImpl: FqName,
|
||||||
|
commonToolHelper: FqName,
|
||||||
jsDceOptions: List<KProperty1<*, *>>,
|
jsDceOptions: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
) {
|
) {
|
||||||
val k2JsDceArgumentsFqName = FqName(K2JSDceArguments::class.qualifiedName!!)
|
|
||||||
val jsDceImplFqName = FqName("${jsDceInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
val jsDceImplFqName = FqName("${jsDceInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
withPrinterToFile(fileFromFqName(srcDir, jsDceImplFqName)) {
|
withPrinterToFile(fileFromFqName(srcDir, jsDceImplFqName)) {
|
||||||
generateImpl(
|
generateImpl(
|
||||||
jsDceImplFqName,
|
jsDceImplFqName,
|
||||||
commonCompilerImpl,
|
commonToolImpl,
|
||||||
jsDceInterfaceFqName,
|
jsDceInterfaceFqName,
|
||||||
|
jsDceOptions
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val k2JsDceArgumentsFqName = FqName(K2JSDceArguments::class.qualifiedName!!)
|
||||||
|
val jsDceCompilerHelperFqName = FqName(
|
||||||
|
"${jsDceInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, jsDceCompilerHelperFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
jsDceInterfaceFqName,
|
||||||
|
jsDceCompilerHelperFqName,
|
||||||
|
commonToolHelper,
|
||||||
k2JsDceArgumentsFqName,
|
k2JsDceArgumentsFqName,
|
||||||
jsDceOptions
|
jsDceOptions
|
||||||
)
|
)
|
||||||
@@ -481,16 +570,29 @@ private fun generateMultiplatformCommonOptionsImpl(
|
|||||||
srcDir: File,
|
srcDir: File,
|
||||||
multiplatformCommonInterfaceFqName: FqName,
|
multiplatformCommonInterfaceFqName: FqName,
|
||||||
commonCompilerImpl: FqName,
|
commonCompilerImpl: FqName,
|
||||||
|
commonCompilerHelper: FqName,
|
||||||
multiplatformCommonOptions: List<KProperty1<*, *>>,
|
multiplatformCommonOptions: List<KProperty1<*, *>>,
|
||||||
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
withPrinterToFile: (targetFile: File, Printer.() -> Unit) -> Unit
|
||||||
) {
|
) {
|
||||||
val k2metadataCompilerArgumentsFqName = FqName(K2MetadataCompilerArguments::class.qualifiedName!!)
|
|
||||||
val multiplatformCommonImplFqName = FqName("${multiplatformCommonInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
val multiplatformCommonImplFqName = FqName("${multiplatformCommonInterfaceFqName.asString()}$IMPLEMENTATION_SUFFIX")
|
||||||
withPrinterToFile(fileFromFqName(srcDir, multiplatformCommonImplFqName)) {
|
withPrinterToFile(fileFromFqName(srcDir, multiplatformCommonImplFqName)) {
|
||||||
generateImpl(
|
generateImpl(
|
||||||
multiplatformCommonImplFqName,
|
multiplatformCommonImplFqName,
|
||||||
commonCompilerImpl,
|
commonCompilerImpl,
|
||||||
multiplatformCommonInterfaceFqName,
|
multiplatformCommonInterfaceFqName,
|
||||||
|
multiplatformCommonOptions
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
val k2metadataCompilerArgumentsFqName = FqName(K2MetadataCompilerArguments::class.qualifiedName!!)
|
||||||
|
val metadataCompilerHelperFqName = FqName(
|
||||||
|
"${multiplatformCommonInterfaceFqName.asString()}$IMPLEMENTATION_HELPERS_SUFFIX"
|
||||||
|
)
|
||||||
|
withPrinterToFile(fileFromFqName(srcDir, metadataCompilerHelperFqName)) {
|
||||||
|
generateCompilerOptionsHelper(
|
||||||
|
multiplatformCommonInterfaceFqName,
|
||||||
|
metadataCompilerHelperFqName,
|
||||||
|
commonCompilerHelper,
|
||||||
k2metadataCompilerArgumentsFqName,
|
k2metadataCompilerArgumentsFqName,
|
||||||
multiplatformCommonOptions
|
multiplatformCommonOptions
|
||||||
)
|
)
|
||||||
@@ -564,7 +666,6 @@ private fun Printer.generateImpl(
|
|||||||
type: FqName,
|
type: FqName,
|
||||||
parentImplFqName: FqName?,
|
parentImplFqName: FqName?,
|
||||||
parentType: FqName,
|
parentType: FqName,
|
||||||
argsType: FqName,
|
|
||||||
properties: List<KProperty1<*, *>>
|
properties: List<KProperty1<*, *>>
|
||||||
) {
|
) {
|
||||||
val modifiers = "internal abstract class"
|
val modifiers = "internal abstract class"
|
||||||
@@ -583,30 +684,54 @@ private fun Printer.generateImpl(
|
|||||||
println()
|
println()
|
||||||
generatePropertyProviderImpl(property)
|
generatePropertyProviderImpl(property)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun Printer.generateCompilerOptionsHelper(
|
||||||
|
type: FqName,
|
||||||
|
helperName: FqName,
|
||||||
|
parentHelperName: FqName?,
|
||||||
|
argsType: FqName,
|
||||||
|
properties: List<KProperty1<*, *>>
|
||||||
|
) {
|
||||||
|
val modifiers = "internal object"
|
||||||
|
|
||||||
|
generateDeclaration(
|
||||||
|
modifiers,
|
||||||
|
helperName,
|
||||||
|
) {
|
||||||
println()
|
println()
|
||||||
println("internal fun fillCompilerArguments(args: $argsType) {")
|
println("internal fun fillCompilerArguments(")
|
||||||
withIndent {
|
withIndent {
|
||||||
if (parentImplFqName != null) println("super.fillCompilerArguments(args)")
|
println("from: $type,")
|
||||||
|
println("args: $argsType,")
|
||||||
|
}
|
||||||
|
println(") {")
|
||||||
|
withIndent {
|
||||||
|
if (parentHelperName != null) println("$parentHelperName.fillCompilerArguments(from, args)")
|
||||||
for (property in properties) {
|
for (property in properties) {
|
||||||
val defaultValue = property.gradleValues
|
val defaultValue = property.gradleValues
|
||||||
if (property.name != "freeCompilerArgs") {
|
if (property.name != "freeCompilerArgs") {
|
||||||
val getter = if (property.gradleReturnType.endsWith("?")) ".orNull" else ".get()"
|
val getter = if (property.gradleReturnType.endsWith("?")) ".orNull" else ".get()"
|
||||||
val toArg = defaultValue.toArgumentConverter?.substringAfter("this") ?: ""
|
val toArg = defaultValue.toArgumentConverter?.substringAfter("this") ?: ""
|
||||||
println("args.${property.name} = ${property.name}$getter$toArg")
|
println("args.${property.name} = from.${property.name}$getter$toArg")
|
||||||
} else {
|
} else {
|
||||||
println("args.freeArgs += ${property.name}.get()")
|
println("args.freeArgs += from.${property.name}.get()")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
addAdditionalJvmArgs(type)
|
addAdditionalJvmArgs(helperName)
|
||||||
}
|
}
|
||||||
println("}")
|
println("}")
|
||||||
|
|
||||||
println()
|
println()
|
||||||
println("internal fun fillDefaultValues(args: $argsType) {")
|
println("internal fun fillDefaultValues(")
|
||||||
withIndent {
|
withIndent {
|
||||||
if (parentImplFqName != null) println("super.fillDefaultValues(args)")
|
println("args: $argsType,")
|
||||||
|
}
|
||||||
|
println(") {")
|
||||||
|
withIndent {
|
||||||
|
if (parentHelperName != null) println("$parentHelperName.fillDefaultValues(args)")
|
||||||
properties
|
properties
|
||||||
.filter { it.name != "freeCompilerArgs" }
|
.filter { it.name != "freeCompilerArgs" }
|
||||||
.forEach {
|
.forEach {
|
||||||
@@ -618,7 +743,7 @@ private fun Printer.generateImpl(
|
|||||||
println("args.${it.name} = $value")
|
println("args.${it.name} = $value")
|
||||||
}
|
}
|
||||||
|
|
||||||
addAdditionalJvmArgs(type)
|
addAdditionalJvmArgs(helperName)
|
||||||
}
|
}
|
||||||
println("}")
|
println("}")
|
||||||
}
|
}
|
||||||
@@ -627,7 +752,7 @@ private fun Printer.generateImpl(
|
|||||||
private fun Printer.addAdditionalJvmArgs(implType: FqName) {
|
private fun Printer.addAdditionalJvmArgs(implType: FqName) {
|
||||||
// Adding required 'noStdlib' and 'noReflect' compiler arguments for JVM compilation
|
// Adding required 'noStdlib' and 'noReflect' compiler arguments for JVM compilation
|
||||||
// Otherwise compilation via build tools will fail
|
// Otherwise compilation via build tools will fail
|
||||||
if (implType.shortName().toString() == "KotlinJvmCompilerOptions$IMPLEMENTATION_SUFFIX") {
|
if (implType.shortName().toString() == "KotlinJvmCompilerOptions$IMPLEMENTATION_HELPERS_SUFFIX") {
|
||||||
println()
|
println()
|
||||||
println("// Arguments with always default values when used from build tools")
|
println("// Arguments with always default values when used from build tools")
|
||||||
println("args.noStdlib = true")
|
println("args.noStdlib = true")
|
||||||
|
|||||||
-18
@@ -24,22 +24,4 @@ internal abstract class KotlinCommonCompilerOptionsDefault @javax.inject.Inject
|
|||||||
@Deprecated(message = "Compiler flag -Xuse-k2 is deprecated; please use language version 2.0 instead", level = DeprecationLevel.WARNING)
|
@Deprecated(message = "Compiler flag -Xuse-k2 is deprecated; please use language version 2.0 instead", level = DeprecationLevel.WARNING)
|
||||||
override val useK2: org.gradle.api.provider.Property<kotlin.Boolean> =
|
override val useK2: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||||
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments) {
|
|
||||||
super.fillCompilerArguments(args)
|
|
||||||
args.apiVersion = apiVersion.orNull?.version
|
|
||||||
args.languageVersion = languageVersion.orNull?.version
|
|
||||||
args.optIn = optIn.get().toTypedArray()
|
|
||||||
args.progressiveMode = progressiveMode.get()
|
|
||||||
args.useK2 = useK2.get()
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments) {
|
|
||||||
super.fillDefaultValues(args)
|
|
||||||
args.apiVersion = null
|
|
||||||
args.languageVersion = null
|
|
||||||
args.optIn = emptyList<String>().toTypedArray()
|
|
||||||
args.progressiveMode = false
|
|
||||||
args.useK2 = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinCommonCompilerOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsHelper.fillCompilerArguments(from, args)
|
||||||
|
args.apiVersion = from.apiVersion.orNull?.version
|
||||||
|
args.languageVersion = from.languageVersion.orNull?.version
|
||||||
|
args.optIn = from.optIn.get().toTypedArray()
|
||||||
|
args.progressiveMode = from.progressiveMode.get()
|
||||||
|
args.useK2 = from.useK2.get()
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.CommonCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsHelper.fillDefaultValues(args)
|
||||||
|
args.apiVersion = null
|
||||||
|
args.languageVersion = null
|
||||||
|
args.optIn = emptyList<String>().toTypedArray()
|
||||||
|
args.progressiveMode = false
|
||||||
|
args.useK2 = false
|
||||||
|
}
|
||||||
|
}
|
||||||
-13
@@ -20,17 +20,4 @@ internal abstract class KotlinCommonCompilerToolOptionsDefault @javax.inject.Inj
|
|||||||
|
|
||||||
override val freeCompilerArgs: org.gradle.api.provider.ListProperty<kotlin.String> =
|
override val freeCompilerArgs: org.gradle.api.provider.ListProperty<kotlin.String> =
|
||||||
objectFactory.listProperty(kotlin.String::class.java).convention(emptyList<String>())
|
objectFactory.listProperty(kotlin.String::class.java).convention(emptyList<String>())
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments) {
|
|
||||||
args.allWarningsAsErrors = allWarningsAsErrors.get()
|
|
||||||
args.suppressWarnings = suppressWarnings.get()
|
|
||||||
args.verbose = verbose.get()
|
|
||||||
args.freeArgs += freeCompilerArgs.get()
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments) {
|
|
||||||
args.allWarningsAsErrors = false
|
|
||||||
args.suppressWarnings = false
|
|
||||||
args.verbose = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinCommonCompilerToolOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments,
|
||||||
|
) {
|
||||||
|
args.allWarningsAsErrors = from.allWarningsAsErrors.get()
|
||||||
|
args.suppressWarnings = from.suppressWarnings.get()
|
||||||
|
args.verbose = from.verbose.get()
|
||||||
|
args.freeArgs += from.freeCompilerArgs.get()
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.CommonToolArguments,
|
||||||
|
) {
|
||||||
|
args.allWarningsAsErrors = false
|
||||||
|
args.suppressWarnings = false
|
||||||
|
args.verbose = false
|
||||||
|
}
|
||||||
|
}
|
||||||
-36
@@ -51,40 +51,4 @@ internal abstract class KotlinJsCompilerOptionsDefault @javax.inject.Inject cons
|
|||||||
|
|
||||||
override val useEsClasses: org.gradle.api.provider.Property<kotlin.Boolean> =
|
override val useEsClasses: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||||
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments) {
|
|
||||||
super.fillCompilerArguments(args)
|
|
||||||
args.friendModulesDisabled = friendModulesDisabled.get()
|
|
||||||
args.main = main.get().mode
|
|
||||||
args.metaInfo = metaInfo.get()
|
|
||||||
args.moduleKind = moduleKind.get().kind
|
|
||||||
args.moduleName = moduleName.orNull
|
|
||||||
args.noStdlib = noStdlib.get()
|
|
||||||
args.outputFile = outputFile.orNull
|
|
||||||
args.sourceMap = sourceMap.get()
|
|
||||||
args.sourceMapEmbedSources = sourceMapEmbedSources.orNull?.mode
|
|
||||||
args.sourceMapNamesPolicy = sourceMapNamesPolicy.orNull?.policy
|
|
||||||
args.sourceMapPrefix = sourceMapPrefix.orNull
|
|
||||||
args.target = target.get()
|
|
||||||
args.typedArrays = typedArrays.get()
|
|
||||||
args.useEsClasses = useEsClasses.get()
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments) {
|
|
||||||
super.fillDefaultValues(args)
|
|
||||||
args.friendModulesDisabled = false
|
|
||||||
args.main = org.jetbrains.kotlin.gradle.dsl.JsMainFunctionExecutionMode.CALL.mode
|
|
||||||
args.metaInfo = true
|
|
||||||
args.moduleKind = org.jetbrains.kotlin.gradle.dsl.JsModuleKind.MODULE_PLAIN.kind
|
|
||||||
args.moduleName = null
|
|
||||||
args.noStdlib = true
|
|
||||||
args.outputFile = null
|
|
||||||
args.sourceMap = false
|
|
||||||
args.sourceMapEmbedSources = null
|
|
||||||
args.sourceMapNamesPolicy = null
|
|
||||||
args.sourceMapPrefix = null
|
|
||||||
args.target = "v5"
|
|
||||||
args.typedArrays = true
|
|
||||||
args.useEsClasses = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinJsCompilerOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
||||||
|
args.friendModulesDisabled = from.friendModulesDisabled.get()
|
||||||
|
args.main = from.main.get().mode
|
||||||
|
args.metaInfo = from.metaInfo.get()
|
||||||
|
args.moduleKind = from.moduleKind.get().kind
|
||||||
|
args.moduleName = from.moduleName.orNull
|
||||||
|
args.noStdlib = from.noStdlib.get()
|
||||||
|
args.outputFile = from.outputFile.orNull
|
||||||
|
args.sourceMap = from.sourceMap.get()
|
||||||
|
args.sourceMapEmbedSources = from.sourceMapEmbedSources.orNull?.mode
|
||||||
|
args.sourceMapNamesPolicy = from.sourceMapNamesPolicy.orNull?.policy
|
||||||
|
args.sourceMapPrefix = from.sourceMapPrefix.orNull
|
||||||
|
args.target = from.target.get()
|
||||||
|
args.typedArrays = from.typedArrays.get()
|
||||||
|
args.useEsClasses = from.useEsClasses.get()
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
|
args.friendModulesDisabled = false
|
||||||
|
args.main = org.jetbrains.kotlin.gradle.dsl.JsMainFunctionExecutionMode.CALL.mode
|
||||||
|
args.metaInfo = true
|
||||||
|
args.moduleKind = org.jetbrains.kotlin.gradle.dsl.JsModuleKind.MODULE_PLAIN.kind
|
||||||
|
args.moduleName = null
|
||||||
|
args.noStdlib = true
|
||||||
|
args.outputFile = null
|
||||||
|
args.sourceMap = false
|
||||||
|
args.sourceMapEmbedSources = null
|
||||||
|
args.sourceMapNamesPolicy = null
|
||||||
|
args.sourceMapPrefix = null
|
||||||
|
args.target = "v5"
|
||||||
|
args.typedArrays = true
|
||||||
|
args.useEsClasses = false
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-13
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.gradle.dsl
|
|||||||
|
|
||||||
internal abstract class KotlinJsDceCompilerToolOptionsDefault @javax.inject.Inject constructor(
|
internal abstract class KotlinJsDceCompilerToolOptionsDefault @javax.inject.Inject constructor(
|
||||||
objectFactory: org.gradle.api.model.ObjectFactory
|
objectFactory: org.gradle.api.model.ObjectFactory
|
||||||
) : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsDefault(objectFactory), org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptions {
|
) : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsDefault(objectFactory), org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptions {
|
||||||
|
|
||||||
override val devMode: org.gradle.api.provider.Property<kotlin.Boolean> =
|
override val devMode: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||||
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||||
@@ -15,16 +15,4 @@ internal abstract class KotlinJsDceCompilerToolOptionsDefault @javax.inject.Inje
|
|||||||
@Deprecated(message = "Use task 'destinationDirectory' to configure output directory", level = DeprecationLevel.WARNING)
|
@Deprecated(message = "Use task 'destinationDirectory' to configure output directory", level = DeprecationLevel.WARNING)
|
||||||
override val outputDirectory: org.gradle.api.provider.Property<kotlin.String> =
|
override val outputDirectory: org.gradle.api.provider.Property<kotlin.String> =
|
||||||
objectFactory.property(kotlin.String::class.java)
|
objectFactory.property(kotlin.String::class.java)
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments) {
|
|
||||||
super.fillCompilerArguments(args)
|
|
||||||
args.devMode = devMode.get()
|
|
||||||
args.outputDirectory = outputDirectory.orNull
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments) {
|
|
||||||
super.fillDefaultValues(args)
|
|
||||||
args.devMode = false
|
|
||||||
args.outputDirectory = null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinJsDceCompilerToolOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsHelper.fillCompilerArguments(from, args)
|
||||||
|
args.devMode = from.devMode.get()
|
||||||
|
args.outputDirectory = from.outputDirectory.orNull
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerToolOptionsHelper.fillDefaultValues(args)
|
||||||
|
args.devMode = false
|
||||||
|
args.outputDirectory = null
|
||||||
|
}
|
||||||
|
}
|
||||||
-24
@@ -20,28 +20,4 @@ internal abstract class KotlinJvmCompilerOptionsDefault @javax.inject.Inject con
|
|||||||
|
|
||||||
override val noJdk: org.gradle.api.provider.Property<kotlin.Boolean> =
|
override val noJdk: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||||
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
objectFactory.property(kotlin.Boolean::class.java).convention(false)
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments) {
|
|
||||||
super.fillCompilerArguments(args)
|
|
||||||
args.javaParameters = javaParameters.get()
|
|
||||||
args.jvmTarget = jvmTarget.orNull?.target
|
|
||||||
args.moduleName = moduleName.orNull
|
|
||||||
args.noJdk = noJdk.get()
|
|
||||||
|
|
||||||
// Arguments with always default values when used from build tools
|
|
||||||
args.noStdlib = true
|
|
||||||
args.noReflect = true
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments) {
|
|
||||||
super.fillDefaultValues(args)
|
|
||||||
args.javaParameters = false
|
|
||||||
args.jvmTarget = null
|
|
||||||
args.moduleName = null
|
|
||||||
args.noJdk = false
|
|
||||||
|
|
||||||
// Arguments with always default values when used from build tools
|
|
||||||
args.noStdlib = true
|
|
||||||
args.noReflect = true
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinJvmCompilerOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
||||||
|
args.javaParameters = from.javaParameters.get()
|
||||||
|
args.jvmTarget = from.jvmTarget.orNull?.target
|
||||||
|
args.moduleName = from.moduleName.orNull
|
||||||
|
args.noJdk = from.noJdk.get()
|
||||||
|
|
||||||
|
// Arguments with always default values when used from build tools
|
||||||
|
args.noStdlib = true
|
||||||
|
args.noReflect = true
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
|
args.javaParameters = false
|
||||||
|
args.jvmTarget = null
|
||||||
|
args.moduleName = null
|
||||||
|
args.noJdk = false
|
||||||
|
|
||||||
|
// Arguments with always default values when used from build tools
|
||||||
|
args.noStdlib = true
|
||||||
|
args.noReflect = true
|
||||||
|
}
|
||||||
|
}
|
||||||
-8
@@ -8,12 +8,4 @@ package org.jetbrains.kotlin.gradle.dsl
|
|||||||
internal abstract class KotlinMultiplatformCommonCompilerOptionsDefault @javax.inject.Inject constructor(
|
internal abstract class KotlinMultiplatformCommonCompilerOptionsDefault @javax.inject.Inject constructor(
|
||||||
objectFactory: org.gradle.api.model.ObjectFactory
|
objectFactory: org.gradle.api.model.ObjectFactory
|
||||||
) : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsDefault(objectFactory), org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions {
|
) : org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsDefault(objectFactory), org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions {
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments) {
|
|
||||||
super.fillCompilerArguments(args)
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments) {
|
|
||||||
super.fillDefaultValues(args)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinMultiplatformCommonCompilerOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformCommonCompilerOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
|
}
|
||||||
|
}
|
||||||
-10
@@ -11,14 +11,4 @@ internal abstract class KotlinNativeCompilerOptionsDefault @javax.inject.Inject
|
|||||||
|
|
||||||
override val moduleName: org.gradle.api.provider.Property<kotlin.String> =
|
override val moduleName: org.gradle.api.provider.Property<kotlin.String> =
|
||||||
objectFactory.property(kotlin.String::class.java)
|
objectFactory.property(kotlin.String::class.java)
|
||||||
|
|
||||||
internal fun fillCompilerArguments(args: org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments) {
|
|
||||||
super.fillCompilerArguments(args)
|
|
||||||
args.moduleName = moduleName.orNull
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun fillDefaultValues(args: org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments) {
|
|
||||||
super.fillDefaultValues(args)
|
|
||||||
args.moduleName = null
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
+24
@@ -0,0 +1,24 @@
|
|||||||
|
// DO NOT EDIT MANUALLY!
|
||||||
|
// Generated by org/jetbrains/kotlin/generators/arguments/GenerateGradleOptions.kt
|
||||||
|
// To regenerate run 'generateGradleOptions' task
|
||||||
|
@file:Suppress("RemoveRedundantQualifierName", "Deprecation", "DuplicatedCode")
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.dsl
|
||||||
|
|
||||||
|
internal object KotlinNativeCompilerOptionsHelper {
|
||||||
|
|
||||||
|
internal fun fillCompilerArguments(
|
||||||
|
from: org.jetbrains.kotlin.gradle.dsl.KotlinNativeCompilerOptions,
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillCompilerArguments(from, args)
|
||||||
|
args.moduleName = from.moduleName.orNull
|
||||||
|
}
|
||||||
|
|
||||||
|
internal fun fillDefaultValues(
|
||||||
|
args: org.jetbrains.kotlin.cli.common.arguments.K2NativeCompilerArguments,
|
||||||
|
) {
|
||||||
|
org.jetbrains.kotlin.gradle.dsl.KotlinCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
|
args.moduleName = null
|
||||||
|
}
|
||||||
|
}
|
||||||
+3
-3
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.internal
|
|||||||
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.K2JVMCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsHelper
|
||||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
||||||
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileArgumentsProvider
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompileArgumentsProvider
|
||||||
@@ -78,7 +78,7 @@ internal open class KotlinJvmCompilerArgumentsContributor(
|
|||||||
args: K2JVMCompilerArguments,
|
args: K2JVMCompilerArguments,
|
||||||
flags: Collection<CompilerArgumentsConfigurationFlag>
|
flags: Collection<CompilerArgumentsConfigurationFlag>
|
||||||
) {
|
) {
|
||||||
(compilerOptions as KotlinJvmCompilerOptionsDefault).fillDefaultValues(args)
|
KotlinJvmCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
|
|
||||||
super.contributeArguments(args, flags)
|
super.contributeArguments(args, flags)
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ internal open class KotlinJvmCompilerArgumentsContributor(
|
|||||||
}
|
}
|
||||||
args.destinationAsFile = destinationDir
|
args.destinationAsFile = destinationDir
|
||||||
|
|
||||||
compilerOptions.fillCompilerArguments(args)
|
KotlinJvmCompilerOptionsHelper.fillCompilerArguments(compilerOptions, args)
|
||||||
logger.kotlinDebug { "$taskName | args.moduleName = ${args.moduleName} (w/ compilerOptions applied)" }
|
logger.kotlinDebug { "$taskName | args.moduleName = ${args.moduleName} (w/ compilerOptions applied)" }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-1
@@ -26,6 +26,7 @@ import org.gradle.work.NormalizeLineEndings
|
|||||||
import org.gradle.workers.WorkerExecutor
|
import org.gradle.workers.WorkerExecutor
|
||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsDefault
|
||||||
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptionsHelper
|
||||||
import org.jetbrains.kotlin.gradle.report.BuildReportMode
|
import org.jetbrains.kotlin.gradle.report.BuildReportMode
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs
|
import org.jetbrains.kotlin.gradle.tasks.KaptGenerateStubs
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||||
@@ -114,7 +115,7 @@ abstract class KaptGenerateStubsTask @Inject constructor(
|
|||||||
args.freeArgs = emptyList()
|
args.freeArgs = emptyList()
|
||||||
// Also use KotlinOptions configuration that was directly set to this task
|
// Also use KotlinOptions configuration that was directly set to this task
|
||||||
// as 'compileKotlinArgumentsContributor' has KotlinOptions from linked KotlinCompile task
|
// as 'compileKotlinArgumentsContributor' has KotlinOptions from linked KotlinCompile task
|
||||||
(compilerOptions as KotlinJvmCompilerOptionsDefault).fillCompilerArguments(args)
|
KotlinJvmCompilerOptionsHelper.fillCompilerArguments(compilerOptions, args)
|
||||||
|
|
||||||
// Copied from KotlinCompile
|
// Copied from KotlinCompile
|
||||||
if (reportingSettings().buildReportMode == BuildReportMode.VERBOSE) {
|
if (reportingSettings().buildReportMode == BuildReportMode.VERBOSE) {
|
||||||
|
|||||||
+3
-5
@@ -23,10 +23,8 @@ import org.jetbrains.kotlin.compilerRunner.ArgumentUtils
|
|||||||
import org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment
|
import org.jetbrains.kotlin.compilerRunner.GradleCompilerEnvironment
|
||||||
import org.jetbrains.kotlin.compilerRunner.IncrementalCompilationEnvironment
|
import org.jetbrains.kotlin.compilerRunner.IncrementalCompilationEnvironment
|
||||||
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
|
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompile
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptionsDefault
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptionsDefault
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
|
|
||||||
import org.jetbrains.kotlin.gradle.internal.tasks.allOutputFiles
|
import org.jetbrains.kotlin.gradle.internal.tasks.allOutputFiles
|
||||||
import org.jetbrains.kotlin.gradle.logging.GradleErrorMessageCollector
|
import org.jetbrains.kotlin.gradle.logging.GradleErrorMessageCollector
|
||||||
import org.jetbrains.kotlin.gradle.logging.GradlePrintingMessageCollector
|
import org.jetbrains.kotlin.gradle.logging.GradlePrintingMessageCollector
|
||||||
@@ -131,12 +129,12 @@ abstract class Kotlin2JsCompile @Inject constructor(
|
|||||||
K2JSCompilerArguments()
|
K2JSCompilerArguments()
|
||||||
|
|
||||||
override fun setupCompilerArgs(args: K2JSCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
override fun setupCompilerArgs(args: K2JSCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
||||||
(compilerOptions as KotlinJsCompilerOptionsDefault).fillDefaultValues(args)
|
KotlinJsCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
super.setupCompilerArgs(args, defaultsOnly = defaultsOnly, ignoreClasspathResolutionErrors = ignoreClasspathResolutionErrors)
|
super.setupCompilerArgs(args, defaultsOnly = defaultsOnly, ignoreClasspathResolutionErrors = ignoreClasspathResolutionErrors)
|
||||||
|
|
||||||
if (defaultsOnly) return
|
if (defaultsOnly) return
|
||||||
|
|
||||||
(compilerOptions as KotlinJsCompilerOptionsDefault).fillCompilerArguments(args)
|
KotlinJsCompilerOptionsHelper.fillCompilerArguments(compilerOptions, args)
|
||||||
if (!args.sourceMapPrefix.isNullOrEmpty()) {
|
if (!args.sourceMapPrefix.isNullOrEmpty()) {
|
||||||
args.sourceMapBaseDirs = sourceMapBaseDir.get().asFile.absolutePath
|
args.sourceMapBaseDirs = sourceMapBaseDir.get().asFile.absolutePath
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -65,7 +65,7 @@ abstract class KotlinCompileCommon @Inject constructor(
|
|||||||
K2MetadataCompilerArguments()
|
K2MetadataCompilerArguments()
|
||||||
|
|
||||||
override fun setupCompilerArgs(args: K2MetadataCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
override fun setupCompilerArgs(args: K2MetadataCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
||||||
(compilerOptions as KotlinMultiplatformCommonCompilerOptionsDefault).fillDefaultValues(args)
|
KotlinMultiplatformCommonCompilerOptionsHelper.fillDefaultValues(args)
|
||||||
super.setupCompilerArgs(args, defaultsOnly = defaultsOnly, ignoreClasspathResolutionErrors = ignoreClasspathResolutionErrors)
|
super.setupCompilerArgs(args, defaultsOnly = defaultsOnly, ignoreClasspathResolutionErrors = ignoreClasspathResolutionErrors)
|
||||||
|
|
||||||
args.moduleName = this@KotlinCompileCommon.moduleName.get()
|
args.moduleName = this@KotlinCompileCommon.moduleName.get()
|
||||||
@@ -86,7 +86,7 @@ abstract class KotlinCompileCommon @Inject constructor(
|
|||||||
refinesPaths = refinesMetadataPaths.map { it.absolutePath }.toTypedArray()
|
refinesPaths = refinesMetadataPaths.map { it.absolutePath }.toTypedArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
(compilerOptions as KotlinMultiplatformCommonCompilerOptionsDefault).fillCompilerArguments(args)
|
KotlinMultiplatformCommonCompilerOptionsHelper.fillCompilerArguments(compilerOptions, args)
|
||||||
|
|
||||||
val localExecutionTimeFreeCompilerArgs = executionTimeFreeCompilerArgs
|
val localExecutionTimeFreeCompilerArgs = executionTimeFreeCompilerArgs
|
||||||
if (localExecutionTimeFreeCompilerArgs != null) {
|
if (localExecutionTimeFreeCompilerArgs != null) {
|
||||||
|
|||||||
+3
-4
@@ -28,10 +28,9 @@ import org.jetbrains.kotlin.cli.common.arguments.DevModeOverwritingStrategies
|
|||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments
|
||||||
import org.jetbrains.kotlin.cli.js.dce.K2JSDce
|
import org.jetbrains.kotlin.cli.js.dce.K2JSDce
|
||||||
import org.jetbrains.kotlin.compilerRunner.runToolInSeparateProcess
|
import org.jetbrains.kotlin.compilerRunner.runToolInSeparateProcess
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptions
|
import org.jetbrains.kotlin.gradle.dsl.*
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptionsDefault
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceCompilerToolOptionsDefault
|
||||||
import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger
|
import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger
|
||||||
import org.jetbrains.kotlin.gradle.utils.absolutePathWithoutExtension
|
import org.jetbrains.kotlin.gradle.utils.absolutePathWithoutExtension
|
||||||
import org.jetbrains.kotlin.gradle.utils.fileExtensionCasePermutations
|
import org.jetbrains.kotlin.gradle.utils.fileExtensionCasePermutations
|
||||||
@@ -58,7 +57,7 @@ abstract class KotlinJsDce @Inject constructor(
|
|||||||
override fun createCompilerArgs(): K2JSDceArguments = K2JSDceArguments()
|
override fun createCompilerArgs(): K2JSDceArguments = K2JSDceArguments()
|
||||||
|
|
||||||
override fun setupCompilerArgs(args: K2JSDceArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
override fun setupCompilerArgs(args: K2JSDceArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
|
||||||
(toolOptions as KotlinJsDceCompilerToolOptionsDefault).fillCompilerArguments(args)
|
KotlinJsDceCompilerToolOptionsHelper.fillCompilerArguments(toolOptions, args)
|
||||||
args.declarationsToKeep = keep.toTypedArray()
|
args.declarationsToKeep = keep.toTypedArray()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user