[Gradle, JS] Rename dukatMode to externalsOutputFormat

^KT-42339 fixed
This commit is contained in:
Ilya Goncharov
2020-10-09 12:19:01 +03:00
parent 3ad6d58153
commit b1768d805f
10 changed files with 42 additions and 42 deletions
@@ -5,7 +5,7 @@
package org.jetbrains.kotlin.gradle
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatMode
import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat
import org.jetbrains.kotlin.gradle.util.modify
import org.junit.Test
import kotlin.test.assertTrue
@@ -103,7 +103,7 @@ class DukatIntegrationIT : BaseGradleIT() {
project.setupWorkingDir()
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
project.gradleProperties().modify {
"${DukatMode.dukatModeProperty}=${DukatMode.SOURCE}"
"${ExternalsOutputFormat.externalsOutputFormatProperty}=${ExternalsOutputFormat.SOURCE}"
}
val externalSrcs = "build/externals/$projectName/src"
@@ -158,7 +158,7 @@ class DukatIntegrationIT : BaseGradleIT() {
project.setupWorkingDir()
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
project.gradleProperties().modify {
"${DukatMode.dukatModeProperty}=${DukatMode.SOURCE}"
"${ExternalsOutputFormat.externalsOutputFormatProperty}=${ExternalsOutputFormat.SOURCE}"
}
val externalSrcs = "build/externals/$projectName/src"
@@ -233,7 +233,7 @@ class DukatIntegrationIT : BaseGradleIT() {
project.gradleProperties().modify {
"""
kotlin.js.generate.externals=true
${DukatMode.dukatModeProperty}=${DukatMode.SOURCE}
${ExternalsOutputFormat.externalsOutputFormatProperty}=${ExternalsOutputFormat.SOURCE}
""".trimIndent()
}
@@ -262,7 +262,7 @@ class DukatIntegrationIT : BaseGradleIT() {
project.setupWorkingDir()
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
project.gradleProperties().modify {
"${DukatMode.dukatModeProperty}=${DukatMode.SOURCE}"
"${ExternalsOutputFormat.externalsOutputFormatProperty}=${ExternalsOutputFormat.SOURCE}"
}
val externalSrcs = "build/externals/both-jsIr/src"
@@ -346,7 +346,7 @@ class DukatIntegrationIT : BaseGradleIT() {
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
project.gradleProperties().modify {
"""
${DukatMode.dukatModeProperty}=${DukatMode.BINARY}
${ExternalsOutputFormat.externalsOutputFormatProperty}=${ExternalsOutputFormat.BINARY}
""".trimIndent()
}
@@ -376,7 +376,7 @@ class DukatIntegrationIT : BaseGradleIT() {
project.gradleBuildScript().modify(::transformBuildScriptWithPluginsDsl)
project.gradleProperties().modify {
"""
${DukatMode.dukatModeProperty}=${DukatMode.SOURCE}
${ExternalsOutputFormat.externalsOutputFormatProperty}=${ExternalsOutputFormat.SOURCE}
""".trimIndent()
}
@@ -13,8 +13,8 @@ import org.jetbrains.kotlin.gradle.plugin.Kotlin2JsPlugin.Companion.NOWARN_2JS_F
import org.jetbrains.kotlin.gradle.plugin.KotlinJsCompilerType.Companion.jsCompilerProperty
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
import org.jetbrains.kotlin.gradle.plugin.statistics.KotlinBuildStatsService
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatMode
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatMode.Companion.dukatModeProperty
import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat
import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat.Companion.externalsOutputFormatProperty
import org.jetbrains.kotlin.gradle.targets.native.DisabledNativeTargetsReporter
import org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile
import org.jetbrains.kotlin.gradle.tasks.CacheBuilder
@@ -221,8 +221,8 @@ internal class PropertiesProvider private constructor(private val project: Proje
/**
* Default mode of generating of Dukat
*/
val dukatMode: DukatMode?
get() = property(dukatModeProperty)?.let { DukatMode.byArgumentOrNull(it) }
val externalsOutputFormat: ExternalsOutputFormat?
get() = property(externalsOutputFormatProperty)?.let { ExternalsOutputFormat.byArgumentOrNull(it) }
/**
* Use Kotlin/JS backend compiler type
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatMode
import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat
import org.jetbrains.kotlin.gradle.targets.js.ir.JsBinary
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsBinaryContainer
import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson
@@ -34,10 +34,10 @@ open class KotlinJsCompilation(
private val kotlinProperties = PropertiesProvider(target.project)
internal val dukatMode: DukatMode
get() = kotlinProperties.dukatMode ?: defaultDukatMode
internal val externalsOutputFormat: ExternalsOutputFormat
get() = kotlinProperties.externalsOutputFormat ?: defaultExternalsOutputFormat
internal open val defaultDukatMode: DukatMode = DukatMode.BINARY
internal open val defaultExternalsOutputFormat: ExternalsOutputFormat = ExternalsOutputFormat.BINARY
override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl()
@@ -29,9 +29,9 @@ internal class DukatCompilationResolverPlugin(
val separateTaskName = npmProject.compilation.disambiguateName("generateExternals")
init {
val dukatMode = compilation.dukatMode
val externalsOutputFormat = compilation.externalsOutputFormat
gradleModelPostProcess(dukatMode, npmProject)
gradleModelPostProcess(externalsOutputFormat, npmProject)
val integratedTask = project.registerTask<IntegratedDukatTask>(
integratedTaskName,
@@ -39,19 +39,19 @@ internal class DukatCompilationResolverPlugin(
) {
it.group = DUKAT_TASK_GROUP
it.description = "Integrated generation Kotlin/JS external declarations for .d.ts files in ${compilation}"
it.dukatMode = dukatMode
it.externalsOutputFormat = externalsOutputFormat
it.dependsOn(nodeJs.npmInstallTaskProvider, npmProject.packageJsonTask)
}
val target = compilation.target
if (target is KotlinJsIrTarget || target is KotlinJsTarget && dukatMode != DukatMode.SOURCE) {
if (target is KotlinJsIrTarget || target is KotlinJsTarget && externalsOutputFormat != ExternalsOutputFormat.SOURCE) {
compilation.compileKotlinTaskProvider.dependsOn(integratedTask)
}
if (target is KotlinJsIrTarget && target.legacyTarget != null) {
target.legacyTarget?.compilations?.named(compilation.name) {
if (it.dukatMode == DukatMode.SOURCE) {
if (it.externalsOutputFormat == ExternalsOutputFormat.SOURCE) {
it.compileKotlinTaskProvider.dependsOn(integratedTask)
}
}
@@ -86,15 +86,15 @@ internal class DukatCompilationResolverPlugin(
val externalNpmDependencies = resolution[project][compilation].externalNpmDependencies
val target = compilation.target
val dukatMode = compilation.dukatMode
if (target is KotlinJsTarget && dukatMode == DukatMode.SOURCE) {
val externalsOutputFormat = compilation.externalsOutputFormat
if (target is KotlinJsTarget && externalsOutputFormat == ExternalsOutputFormat.SOURCE) {
return
}
DukatExecutor(
nodeJs,
DtsResolver(npmProject).getAllDts(externalNpmDependencies),
dukatMode,
externalsOutputFormat,
npmProject,
packageJsonIsUpdated,
operation = compilation.name + " > " + DukatExecutor.OPERATION,
@@ -108,14 +108,14 @@ internal class DukatCompilationResolverPlugin(
}
internal fun gradleModelPostProcess(
dukatMode: DukatMode,
externalsOutputFormat: ExternalsOutputFormat,
npmProject: NpmProject
) {
val compilation = npmProject.compilation
val project = npmProject.project
when (dukatMode) {
DukatMode.SOURCE -> compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir)
DukatMode.BINARY -> {
when (externalsOutputFormat) {
ExternalsOutputFormat.SOURCE -> compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir)
ExternalsOutputFormat.BINARY -> {
npmProject.externalsDir
.listFiles()
?.filter { it.isCompatibleArchive }
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
class DukatExecutor(
val nodeJs: NodeJsRootExtension,
val typeDefinitions: List<DtsResolver.Dts>,
val dukatMode: DukatMode,
val externalsOutputFormat: ExternalsOutputFormat,
val npmProject: NpmProject,
val packageJsonIsUpdated: Boolean,
val operation: String = OPERATION,
@@ -50,7 +50,7 @@ class DukatExecutor(
DukatRunner(
npmProject.compilation,
typeDefinitions.map { it.file },
dukatMode,
externalsOutputFormat,
npmProject.externalsDir,
operation = operation
).execute()
@@ -60,6 +60,6 @@ class DukatExecutor(
versionFile.writeText(version)
gradleModelPostProcess(dukatMode, npmProject)
gradleModelPostProcess(externalsOutputFormat, npmProject)
}
}
@@ -13,7 +13,7 @@ import java.io.File
class DukatRunner(
val compilation: KotlinJsCompilation,
val dTsFiles: Collection<File>,
val dukatMode: DukatMode,
val externalsOutputFormat: ExternalsOutputFormat,
val destDir: File,
val qualifiedPackageName: String? = null,
val jsInteropJvmEngine: String? = null,
@@ -23,7 +23,7 @@ class DukatRunner(
compilation.target.project.execWithProgress(operation) { exec ->
val args = mutableListOf<String>()
if (dukatMode == DukatMode.BINARY) {
if (externalsOutputFormat == ExternalsOutputFormat.BINARY) {
args.add("--descriptors-jar")
}
@@ -29,10 +29,10 @@ abstract class DukatTask(
get() = setOf(nodeJs.versions.dukat)
/**
* [DukatMode] what to generate, sources or binaries
* [ExternalsOutputFormat] what to generate, sources or binaries
*/
@Input
var dukatMode: DukatMode = DukatMode.SOURCE
var externalsOutputFormat: ExternalsOutputFormat = ExternalsOutputFormat.SOURCE
@get:Internal
val dts by lazy {
@@ -87,7 +87,7 @@ abstract class DukatTask(
DukatRunner(
compilation,
dTsFiles,
dukatMode,
externalsOutputFormat,
destinationDir,
qualifiedPackageName,
null,
@@ -5,14 +5,14 @@
package org.jetbrains.kotlin.gradle.targets.js.dukat
enum class DukatMode {
enum class ExternalsOutputFormat {
SOURCE,
BINARY;
companion object {
fun byArgumentOrNull(argument: String): DukatMode? =
fun byArgumentOrNull(argument: String): ExternalsOutputFormat? =
values().firstOrNull { it.name.equals(argument, ignoreCase = true) }
const val dukatModeProperty = "dukat.mode"
const val externalsOutputFormatProperty = "kotlin.js.externals.output.format"
}
}
@@ -28,7 +28,7 @@ constructor(
DukatExecutor(
nodeJs,
dts,
dukatMode,
externalsOutputFormat,
compilation.npmProject,
true,
compareInputs = false
@@ -9,7 +9,7 @@ import org.gradle.api.file.SourceDirectorySet
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.dukat.DukatMode
import org.jetbrains.kotlin.gradle.targets.js.dukat.ExternalsOutputFormat
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
class KotlinJsIrCompilation(
@@ -17,8 +17,8 @@ class KotlinJsIrCompilation(
name: String
) : KotlinJsCompilation(target, name) {
override val defaultDukatMode: DukatMode
get() = DukatMode.SOURCE
override val defaultExternalsOutputFormat: ExternalsOutputFormat
get() = ExternalsOutputFormat.SOURCE
internal val allSources: MutableSet<SourceDirectorySet> = mutableSetOf()