[Gradle, JS] outputName -> moduleName
This commit is contained in:
+11
-3
@@ -16,6 +16,10 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
|
||||
@JvmStatic private val serialVersionUID = 0L
|
||||
}
|
||||
|
||||
@GradleOption(
|
||||
value = DefaultValues.StringNullDefault::class,
|
||||
gradleInputType = GradleInputTypes.INTERNAL // handled by task 'outputFileProperty'
|
||||
)
|
||||
@GradleDeprecatedOption(
|
||||
message = "Only for legacy backend. For IR backend please use task.destinationDirectory and moduleName",
|
||||
level = DeprecationLevel.WARNING,
|
||||
@@ -27,8 +31,12 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
|
||||
@Argument(value = "-Xir-output-dir", valueDescription = "<directory>", description = "Destination for generated files")
|
||||
var outputDir: String? by NullableStringFreezableVar(null)
|
||||
|
||||
@Argument(value = "-Xir-output-name", description = "Base name of generated files")
|
||||
var outputName: String? by NullableStringFreezableVar(null)
|
||||
@GradleOption(
|
||||
value = DefaultValues.StringNullDefault::class,
|
||||
gradleInputType = GradleInputTypes.INPUT
|
||||
)
|
||||
@Argument(value = "-Xir-module-name", description = "Base name of generated files")
|
||||
var moduleName: String? by NullableStringFreezableVar(null)
|
||||
|
||||
@GradleOption(
|
||||
value = DefaultValues.BooleanTrueDefault::class,
|
||||
@@ -185,7 +193,7 @@ class K2JSCompilerArguments : CommonCompilerArguments() {
|
||||
var irOnly: Boolean by FreezableVar(false)
|
||||
|
||||
@Argument(
|
||||
value = "-Xir-module-name",
|
||||
value = "-Xir-klib-module-name",
|
||||
valueDescription = "<name>",
|
||||
description = "Specify a compilation module name for IR backend"
|
||||
)
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.cli.js
|
||||
|
||||
import com.intellij.openapi.Disposable
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.util.text.StringUtil
|
||||
import org.jetbrains.kotlin.backend.common.CompilationException
|
||||
import org.jetbrains.kotlin.backend.common.phaser.PhaseConfig
|
||||
@@ -48,14 +47,12 @@ import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImplForJsIC
|
||||
import org.jetbrains.kotlin.js.analyzer.JsAnalysisResult
|
||||
import org.jetbrains.kotlin.js.config.*
|
||||
import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.serialization.js.ModuleKind
|
||||
import org.jetbrains.kotlin.utils.KotlinPaths
|
||||
import org.jetbrains.kotlin.utils.PathUtil
|
||||
import org.jetbrains.kotlin.utils.fileUtils.withReplacedExtensionOrNull
|
||||
import org.jetbrains.kotlin.utils.join
|
||||
import java.io.File
|
||||
import java.io.IOException
|
||||
@@ -239,7 +236,7 @@ class K2JsIrCompiler : CLICompiler<K2JSCompilerArguments>() {
|
||||
if (!checkKotlinPackageUsage(environmentForJS.configuration, sourcesFiles)) return ExitCode.COMPILATION_ERROR
|
||||
|
||||
val outputDirPath = arguments.outputDir
|
||||
val outputName = arguments.outputName
|
||||
val outputName = arguments.moduleName
|
||||
if (outputDirPath == null) {
|
||||
messageCollector.report(ERROR, "IR: Specify output dir via -Xir-output-dir", null)
|
||||
return ExitCode.COMPILATION_ERROR
|
||||
|
||||
+1
-2
@@ -2,7 +2,6 @@ package org.jetbrains.kotlin.incremental
|
||||
|
||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSCompilerArguments
|
||||
import org.jetbrains.kotlin.incremental.testingUtils.BuildLogFinder
|
||||
import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION
|
||||
import java.io.File
|
||||
|
||||
abstract class AbstractIncrementalJsKlibCompilerRunnerTest : AbstractIncrementalJsCompilerRunnerTest() {
|
||||
@@ -10,7 +9,7 @@ abstract class AbstractIncrementalJsKlibCompilerRunnerTest : AbstractIncremental
|
||||
K2JSCompilerArguments().apply {
|
||||
libraries = "build/js-ir-runtime/full-runtime.klib"
|
||||
outputDir = destinationDir.path
|
||||
outputName = testDir.name
|
||||
moduleName = testDir.name
|
||||
outputFile = null
|
||||
sourceMap = false
|
||||
irProduceKlibDir = false
|
||||
|
||||
+2
-2
@@ -20,7 +20,7 @@ abstract class AbstractIncrementalMultiModuleJsKlibCompilerRunnerTest :
|
||||
K2JSCompilerArguments().apply {
|
||||
libraries = STDLIB_DEPENDENCY
|
||||
outputDir = destinationDir.path
|
||||
outputName = testDir.name
|
||||
moduleName = testDir.name
|
||||
sourceMap = false
|
||||
irProduceKlibDir = false
|
||||
irProduceKlibFile = true
|
||||
@@ -83,7 +83,7 @@ abstract class AbstractIncrementalMultiModuleJsKlibCompilerRunnerTest :
|
||||
|
||||
libraries = sb.toString()
|
||||
outputDir = outFile.parentFile.path
|
||||
outputName = outFile.nameWithoutExtension
|
||||
moduleName = outFile.nameWithoutExtension
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
+1
-1
@@ -107,7 +107,7 @@ abstract class AbstractJsKlibLookupTrackerTest : AbstractJsLookupTrackerTest() {
|
||||
args.irProduceKlibDir = true
|
||||
args.irOnly = true
|
||||
args.outputDir = outDir.normalize().absolutePath
|
||||
args.outputName = "out"
|
||||
args.moduleName = "out"
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -54,7 +54,7 @@ abstract class AbstractJsKlibBinaryCompatibilityTest : AbstractKlibBinaryCompati
|
||||
freeArgs = createFiles(module.versionFiles(version))
|
||||
libraries = module.dependenciesToLibrariesArg(version = version)
|
||||
outputDir = workingDir.normalize().absolutePath
|
||||
outputName = module.name(version)
|
||||
moduleName = module.name(version)
|
||||
irProduceKlibFile = true
|
||||
irOnly = true
|
||||
irModuleName = module.name
|
||||
@@ -69,7 +69,7 @@ abstract class AbstractJsKlibBinaryCompatibilityTest : AbstractKlibBinaryCompati
|
||||
freeArgs = createFiles(module.files) + runnerFunctionFile()
|
||||
libraries = module.dependenciesToLibrariesArg(version = 2)
|
||||
outputDir = workingDir.normalize().absolutePath
|
||||
outputName = module.name
|
||||
moduleName = module.name
|
||||
irProduceJs = true
|
||||
irOnly = true
|
||||
irModuleName = module.name
|
||||
|
||||
+10
-5
@@ -37,6 +37,14 @@ interface CompilerJsOptions : org.jetbrains.kotlin.gradle.dsl.CompilerCommonOpti
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val moduleKind: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JsModuleKind>
|
||||
|
||||
/**
|
||||
* Base name of generated files
|
||||
* Default value: null
|
||||
*/
|
||||
@get:org.gradle.api.tasks.Optional
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val moduleName: org.gradle.api.provider.Property<kotlin.String>
|
||||
|
||||
/**
|
||||
* Don't automatically include the default Kotlin/JS stdlib into compilation dependencies
|
||||
* Default value: true
|
||||
@@ -48,12 +56,9 @@ interface CompilerJsOptions : org.jetbrains.kotlin.gradle.dsl.CompilerCommonOpti
|
||||
* Destination *.js file for the compilation result
|
||||
* Default value: null
|
||||
*/
|
||||
@Deprecated(message = "Use task 'outputFileProperty' to specify location", level = DeprecationLevel.WARNING)
|
||||
@Deprecated(message = "Only for legacy backend. For IR backend please use task.destinationDirectory and moduleName", level = DeprecationLevel.WARNING)
|
||||
@get:org.gradle.api.tasks.Internal
|
||||
val outputFile: org.gradle.api.provider.Property<kotlin.String?>
|
||||
|
||||
@get:org.gradle.api.tasks.Input
|
||||
val outputName: org.gradle.api.provider.Property<kotlin.String>
|
||||
val outputFile: org.gradle.api.provider.Property<kotlin.String>
|
||||
|
||||
/**
|
||||
* Generate source map
|
||||
|
||||
+8
@@ -51,6 +51,14 @@ interface KotlinJsOptions : org.jetbrains.kotlin.gradle.dsl.KotlinCommonOptions
|
||||
get() = options.moduleKind.get().moduleKindKotlinOption
|
||||
set(value) = options.moduleKind.set(value.moduleKindCompilerOption)
|
||||
|
||||
/**
|
||||
* Base name of generated files
|
||||
* Default value: null
|
||||
*/
|
||||
var moduleName: kotlin.String?
|
||||
get() = options.moduleName.orNull
|
||||
set(value) = options.moduleName.set(value)
|
||||
|
||||
/**
|
||||
* Don't automatically include the default Kotlin/JS stdlib into compilation dependencies
|
||||
* Default value: true
|
||||
|
||||
+7
-2
@@ -21,11 +21,14 @@ internal abstract class CompilerJsOptionsDefault @javax.inject.Inject constructo
|
||||
override val moduleKind: org.gradle.api.provider.Property<org.jetbrains.kotlin.gradle.dsl.JsModuleKind> =
|
||||
objectFactory.property(org.jetbrains.kotlin.gradle.dsl.JsModuleKind::class.java).convention(org.jetbrains.kotlin.gradle.dsl.JsModuleKind.MODULE_PLAIN)
|
||||
|
||||
override val moduleName: org.gradle.api.provider.Property<kotlin.String> =
|
||||
objectFactory.property(kotlin.String::class.java)
|
||||
|
||||
override val noStdlib: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||
objectFactory.property(kotlin.Boolean::class.java).convention(true)
|
||||
|
||||
@Deprecated(message = "Use task 'outputFileProperty' to specify location", level = DeprecationLevel.WARNING)
|
||||
override val outputFile: org.gradle.api.provider.Property<kotlin.String?> =
|
||||
@Deprecated(message = "Only for legacy backend. For IR backend please use task.destinationDirectory and moduleName", level = DeprecationLevel.WARNING)
|
||||
override val outputFile: org.gradle.api.provider.Property<kotlin.String> =
|
||||
objectFactory.property(kotlin.String::class.java)
|
||||
|
||||
override val sourceMap: org.gradle.api.provider.Property<kotlin.Boolean> =
|
||||
@@ -49,6 +52,7 @@ internal abstract class CompilerJsOptionsDefault @javax.inject.Inject constructo
|
||||
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()
|
||||
@@ -64,6 +68,7 @@ internal abstract class CompilerJsOptionsDefault @javax.inject.Inject constructo
|
||||
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
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ internal const val PRODUCE_ZIPPED_KLIB = "-Xir-produce-klib-file"
|
||||
|
||||
internal const val MINIMIZED_MEMBER_NAMES = "-Xir-minimized-member-names"
|
||||
|
||||
internal const val MODULE_NAME = "-Xir-module-name"
|
||||
internal const val KLIB_MODULE_NAME = "-Xir-klib-module-name"
|
||||
|
||||
internal const val PER_MODULE = "-Xir-per-module"
|
||||
internal const val PER_MODULE_OUTPUT_NAME = "-Xir-per-module-output-name"
|
||||
|
||||
+1
-2
@@ -6,7 +6,6 @@
|
||||
package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||
|
||||
import org.gradle.api.Task
|
||||
import org.gradle.api.file.RegularFile
|
||||
import org.gradle.api.provider.Provider
|
||||
import org.gradle.api.tasks.Copy
|
||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||
@@ -207,7 +206,7 @@ abstract class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
|
||||
) { task ->
|
||||
val entryFileProvider = binary.linkSyncTask.zip(binary.linkTask) { sync, link ->
|
||||
sync.destinationDir
|
||||
.resolve(link.compilerOptions.outputName.get() + ".js")
|
||||
.resolve(link.compilerOptions.moduleName.get() + ".js")
|
||||
}
|
||||
|
||||
task.description = "build webpack ${mode.name.toLowerCase()} bundle"
|
||||
|
||||
+1
-1
@@ -43,7 +43,7 @@ constructor(
|
||||
val linkTask = binary.linkTask
|
||||
|
||||
val compiledWasmFile = linkTask.map { link ->
|
||||
link.destinationDirectory.asFile.get().resolve(link.compilerOptions.outputName.get() + ".wasm")
|
||||
link.destinationDirectory.asFile.get().resolve(link.compilerOptions.moduleName.get() + ".wasm")
|
||||
}
|
||||
|
||||
//TODO This is temporary solution that overrides compiled files that triggers recompile and reoptimize wasm every time (when binaryen is enabled)
|
||||
|
||||
+1
-1
@@ -136,7 +136,7 @@ abstract class KotlinJsIrSubTarget(
|
||||
else -> error("Only JS and WASM supported for KotlinJsTest")
|
||||
}
|
||||
binary.linkTask
|
||||
.flatMap { linkTask -> linkTask.compilerOptions.outputName }
|
||||
.flatMap { linkTask -> linkTask.compilerOptions.moduleName }
|
||||
.map { outputName ->
|
||||
copyTask.destinationDir
|
||||
.resolve(outputName + extension)
|
||||
|
||||
+2
-2
@@ -1011,10 +1011,10 @@ abstract class Kotlin2JsCompile @Inject constructor(
|
||||
if (outputFilePath != null) {
|
||||
val outputFile = File(outputFilePath)
|
||||
args.outputDir = (if (outputFile.extension == "") outputFile else outputFile.parentFile).normalize().absolutePath
|
||||
args.outputName = outputFile.nameWithoutExtension
|
||||
args.moduleName = outputFile.nameWithoutExtension
|
||||
} else {
|
||||
args.outputDir = destinationDirectory.get().asFile.normalize().absolutePath
|
||||
args.outputName = compilerOptions.outputName.get()
|
||||
args.moduleName = compilerOptions.moduleName.get()
|
||||
}
|
||||
} else {
|
||||
args.outputFile = outputFileProperty.get().absoluteFile.normalize().absolutePath
|
||||
|
||||
+3
-5
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.gradle.tasks.configuration
|
||||
|
||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.isMainCompilationData
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.*
|
||||
@@ -14,7 +13,6 @@ import org.jetbrains.kotlin.gradle.targets.js.ir.PRODUCE_UNZIPPED_KLIB
|
||||
import org.jetbrains.kotlin.gradle.targets.js.ir.PRODUCE_ZIPPED_KLIB
|
||||
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
|
||||
import org.jetbrains.kotlin.gradle.utils.klibModuleName
|
||||
import java.io.File
|
||||
|
||||
internal typealias Kotlin2JsCompileConfig = BaseKotlin2JsCompileConfig<Kotlin2JsCompile>
|
||||
|
||||
@@ -34,14 +32,14 @@ internal open class BaseKotlin2JsCompileConfig<TASK : Kotlin2JsCompile>(
|
||||
|
||||
configureAdditionalFreeCompilerArguments(task, compilation)
|
||||
|
||||
task.compilerOptions.outputName.convention(
|
||||
task.compilerOptions.moduleName.convention(
|
||||
compilation.ownModuleName
|
||||
)
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
task.outputFileProperty.value(
|
||||
task.destinationDirectory.flatMap { dir ->
|
||||
task.compilerOptions.outputName.map { name ->
|
||||
task.compilerOptions.moduleName.map { name ->
|
||||
dir.file(name).asFile
|
||||
}
|
||||
}
|
||||
@@ -84,7 +82,7 @@ internal open class BaseKotlin2JsCompileConfig<TASK : Kotlin2JsCompile>(
|
||||
} else {
|
||||
"${project.name}_${compilation.compilationPurpose}"
|
||||
}
|
||||
add("$MODULE_NAME=${project.klibModuleName(baseName)}")
|
||||
add("$KLIB_MODULE_NAME=${project.klibModuleName(baseName)}")
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -43,7 +43,7 @@ internal open class KotlinJsIrLinkConfig(
|
||||
.map { it.dir(binary.name) }
|
||||
.map { it.dir(NpmProject.DIST_FOLDER) }
|
||||
)
|
||||
task.compilerOptions.outputName.convention(project.provider { compilation.npmProject.name })
|
||||
task.compilerOptions.moduleName.convention(project.provider { compilation.npmProject.name })
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user