[Gradle, JS] Rename dukatMode to externalsOutputFormat
^KT-42339 fixed
This commit is contained in:
+7
-7
@@ -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()
|
||||
}
|
||||
|
||||
|
||||
+4
-4
@@ -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
|
||||
|
||||
+4
-4
@@ -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()
|
||||
|
||||
|
||||
+12
-12
@@ -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 }
|
||||
|
||||
+3
-3
@@ -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)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -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")
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -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,
|
||||
|
||||
+3
-3
@@ -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"
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -28,7 +28,7 @@ constructor(
|
||||
DukatExecutor(
|
||||
nodeJs,
|
||||
dts,
|
||||
dukatMode,
|
||||
externalsOutputFormat,
|
||||
compilation.npmProject,
|
||||
true,
|
||||
compareInputs = false
|
||||
|
||||
+3
-3
@@ -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()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user