[Gradle, JS] Move gradle post processing after executing of dukat
^KT-42339 fixed [Gradle, JS] Use 2 integrated tasks for dukat in both mode ^KT-42339 fixed [Gradle, JS] Dukat into jar ^KT-42339 fixed
This commit is contained in:
+1
-1
@@ -37,7 +37,7 @@ open class KotlinJsCompilation(
|
|||||||
internal val dukatMode: DukatMode
|
internal val dukatMode: DukatMode
|
||||||
get() = kotlinProperties.dukatMode ?: defaultDukatMode
|
get() = kotlinProperties.dukatMode ?: defaultDukatMode
|
||||||
|
|
||||||
protected open val defaultDukatMode: DukatMode = DukatMode.BINARY
|
internal open val defaultDukatMode: DukatMode = DukatMode.BINARY
|
||||||
|
|
||||||
override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl()
|
override val kotlinOptions: KotlinJsOptions = KotlinJsOptionsImpl()
|
||||||
|
|
||||||
|
|||||||
+3
-1
@@ -51,7 +51,9 @@ open class KotlinJsTargetPreset(
|
|||||||
name.removeJsCompilerSuffix(KotlinJsCompilerType.LEGACY),
|
name.removeJsCompilerSuffix(KotlinJsCompilerType.LEGACY),
|
||||||
KotlinJsCompilerType.IR.lowerName
|
KotlinJsCompilerType.IR.lowerName
|
||||||
)
|
)
|
||||||
)
|
)?.also {
|
||||||
|
it.legacyTarget = this
|
||||||
|
}
|
||||||
this.isMpp = this@KotlinJsTargetPreset.isMpp
|
this.isMpp = this@KotlinJsTargetPreset.isMpp
|
||||||
|
|
||||||
project.whenEvaluated {
|
project.whenEvaluated {
|
||||||
|
|||||||
+11
-14
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.dukat
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmDependency
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.npm.plugins.CompilationResolverPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
|
import org.jetbrains.kotlin.gradle.targets.js.npm.resolved.KotlinRootNpmResolution
|
||||||
@@ -26,15 +27,6 @@ internal class DukatCompilationResolverPlugin(
|
|||||||
|
|
||||||
init {
|
init {
|
||||||
val dukatMode = compilation.dukatMode
|
val dukatMode = compilation.dukatMode
|
||||||
when (dukatMode) {
|
|
||||||
DukatMode.SOURCE -> compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir)
|
|
||||||
DukatMode.BINARY -> {
|
|
||||||
project.dependencies.add(
|
|
||||||
compilation.compileDependencyConfigurationName,
|
|
||||||
project.files(npmProject.externalsDir)
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
val integratedTask = project.registerTask<IntegratedDukatTask>(
|
val integratedTask = project.registerTask<IntegratedDukatTask>(
|
||||||
integratedTaskName,
|
integratedTaskName,
|
||||||
@@ -46,12 +38,17 @@ internal class DukatCompilationResolverPlugin(
|
|||||||
it.dependsOn(nodeJs.npmInstallTaskProvider, npmProject.packageJsonTask)
|
it.dependsOn(nodeJs.npmInstallTaskProvider, npmProject.packageJsonTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
compilation.compileKotlinTaskProvider.dependsOn(integratedTask)
|
|
||||||
|
|
||||||
val target = compilation.target
|
val target = compilation.target
|
||||||
if (target is KotlinJsTarget && target.irTarget != null) {
|
|
||||||
target.irTarget?.compilations?.named(compilation.name) {
|
if (target is KotlinJsIrTarget || target is KotlinJsTarget && dukatMode != DukatMode.SOURCE) {
|
||||||
it.compileKotlinTaskProvider.dependsOn(integratedTask)
|
compilation.compileKotlinTaskProvider.dependsOn(integratedTask)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (target is KotlinJsIrTarget && target.legacyTarget != null) {
|
||||||
|
target.legacyTarget?.compilations?.named(compilation.name) {
|
||||||
|
if (it.dukatMode == DukatMode.SOURCE) {
|
||||||
|
it.compileKotlinTaskProvider.dependsOn(integratedTask)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+23
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.gradle.targets.js.dukat
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.npm.isCompatibleArchive
|
||||||
|
|
||||||
class DukatExecutor(
|
class DukatExecutor(
|
||||||
val nodeJs: NodeJsRootExtension,
|
val nodeJs: NodeJsRootExtension,
|
||||||
@@ -59,5 +60,27 @@ class DukatExecutor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
versionFile.writeText(version)
|
versionFile.writeText(version)
|
||||||
|
|
||||||
|
gradleModelPostProcess()
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun gradleModelPostProcess() {
|
||||||
|
val compilation = npmProject.compilation
|
||||||
|
val project = npmProject.project
|
||||||
|
when (dukatMode) {
|
||||||
|
DukatMode.SOURCE -> compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir)
|
||||||
|
DukatMode.BINARY -> {
|
||||||
|
npmProject.externalsDir
|
||||||
|
.listFiles()
|
||||||
|
?.filter { it.isCompatibleArchive }
|
||||||
|
?.forEach {
|
||||||
|
project.dependencies.add(
|
||||||
|
compilation.compileDependencyConfigurationName,
|
||||||
|
project.files(it)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1
-1
@@ -24,7 +24,7 @@ class DukatRunner(
|
|||||||
val args = mutableListOf<String>()
|
val args = mutableListOf<String>()
|
||||||
|
|
||||||
if (dukatMode == DukatMode.BINARY) {
|
if (dukatMode == DukatMode.BINARY) {
|
||||||
args.add("--descriptors")
|
args.add("--descriptors-jar")
|
||||||
}
|
}
|
||||||
|
|
||||||
val qualifiedPackageName = qualifiedPackageName
|
val qualifiedPackageName = qualifiedPackageName
|
||||||
|
|||||||
+4
@@ -19,6 +19,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinTargetWithBinaries
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.disambiguateName
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.JsAggregatingExecutionSource
|
import org.jetbrains.kotlin.gradle.targets.js.JsAggregatingExecutionSource
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBrowserDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsSubTargetContainerDsl
|
||||||
@@ -45,6 +46,9 @@ constructor(
|
|||||||
open var isMpp: Boolean? = null
|
open var isMpp: Boolean? = null
|
||||||
internal set
|
internal set
|
||||||
|
|
||||||
|
var legacyTarget: KotlinJsTarget? = null
|
||||||
|
internal set
|
||||||
|
|
||||||
override var moduleName: String? = null
|
override var moduleName: String? = null
|
||||||
set(value) {
|
set(value) {
|
||||||
check(!isBrowserConfigured && !isNodejsConfigured) {
|
check(!isBrowserConfigured && !isNodejsConfigured) {
|
||||||
|
|||||||
+1
-1
@@ -70,7 +70,7 @@ internal class GradleNodeModuleBuilder(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private val File.isCompatibleArchive
|
internal val File.isCompatibleArchive
|
||||||
get() = isFile
|
get() = isFile
|
||||||
&& (extension == "jar"
|
&& (extension == "jar"
|
||||||
|| extension == "zip"
|
|| extension == "zip"
|
||||||
|
|||||||
+1
-4
@@ -25,7 +25,6 @@ import org.jetbrains.kotlin.gradle.plugin.sources.KotlinDependencyScope
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.sources.compilationDependencyConfigurationByScope
|
import org.jetbrains.kotlin.gradle.plugin.sources.compilationDependencyConfigurationByScope
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
|
import org.jetbrains.kotlin.gradle.plugin.sources.sourceSetDependencyConfigurationByScope
|
||||||
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
import org.jetbrains.kotlin.gradle.plugin.usesPlatformOf
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
|
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.*
|
import org.jetbrains.kotlin.gradle.targets.js.npm.*
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON
|
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject.Companion.PACKAGE_JSON
|
||||||
@@ -73,9 +72,7 @@ internal class KotlinCompilationNpmResolver(
|
|||||||
|
|
||||||
val plugins: List<CompilationResolverPlugin> = projectResolver.resolver.plugins
|
val plugins: List<CompilationResolverPlugin> = projectResolver.resolver.plugins
|
||||||
.flatMap {
|
.flatMap {
|
||||||
val target = compilation.target
|
if (compilation.isMain()) {
|
||||||
// If mixedMode (BOTH) register only for legacy target
|
|
||||||
if (compilation.isMain() && ((target is KotlinJsTarget) || (target is KotlinJsIrTarget && !target.mixedMode))) {
|
|
||||||
it.createCompilationResolverPlugins(this)
|
it.createCompilationResolverPlugins(this)
|
||||||
} else {
|
} else {
|
||||||
emptyList()
|
emptyList()
|
||||||
|
|||||||
Reference in New Issue
Block a user