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