[Gradle, JS] Dukat descriptors
^KT-42339 fixed
This commit is contained in:
+5
-2
@@ -25,12 +25,13 @@ internal class DukatCompilationResolverPlugin(
|
|||||||
val separateTaskName = npmProject.compilation.disambiguateName("generateExternals")
|
val separateTaskName = npmProject.compilation.disambiguateName("generateExternals")
|
||||||
|
|
||||||
init {
|
init {
|
||||||
when (compilation.dukatMode) {
|
val dukatMode = compilation.dukatMode
|
||||||
|
when (dukatMode) {
|
||||||
DukatMode.SOURCE -> compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir)
|
DukatMode.SOURCE -> compilation.defaultSourceSet.kotlin.srcDir(npmProject.externalsDir)
|
||||||
DukatMode.BINARY -> {
|
DukatMode.BINARY -> {
|
||||||
project.dependencies.add(
|
project.dependencies.add(
|
||||||
compilation.compileDependencyConfigurationName,
|
compilation.compileDependencyConfigurationName,
|
||||||
project.file(npmProject.externalsDir)
|
project.files(npmProject.externalsDir)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -41,6 +42,7 @@ 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.dependsOn(nodeJs.npmInstallTaskProvider, npmProject.packageJsonTask)
|
it.dependsOn(nodeJs.npmInstallTaskProvider, npmProject.packageJsonTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -83,6 +85,7 @@ internal class DukatCompilationResolverPlugin(
|
|||||||
DukatExecutor(
|
DukatExecutor(
|
||||||
nodeJs,
|
nodeJs,
|
||||||
DtsResolver(npmProject).getAllDts(externalNpmDependencies),
|
DtsResolver(npmProject).getAllDts(externalNpmDependencies),
|
||||||
|
compilation.dukatMode,
|
||||||
npmProject,
|
npmProject,
|
||||||
packageJsonIsUpdated,
|
packageJsonIsUpdated,
|
||||||
operation = compilation.name + " > " + DukatExecutor.OPERATION,
|
operation = compilation.name + " > " + DukatExecutor.OPERATION,
|
||||||
|
|||||||
+2
@@ -11,6 +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 npmProject: NpmProject,
|
val npmProject: NpmProject,
|
||||||
val packageJsonIsUpdated: Boolean,
|
val packageJsonIsUpdated: Boolean,
|
||||||
val operation: String = OPERATION,
|
val operation: String = OPERATION,
|
||||||
@@ -49,6 +50,7 @@ class DukatExecutor(
|
|||||||
DukatRunner(
|
DukatRunner(
|
||||||
npmProject.compilation,
|
npmProject.compilation,
|
||||||
typeDefinitions.map { it.file },
|
typeDefinitions.map { it.file },
|
||||||
|
dukatMode,
|
||||||
npmProject.externalsDir,
|
npmProject.externalsDir,
|
||||||
operation = operation
|
operation = operation
|
||||||
).execute()
|
).execute()
|
||||||
|
|||||||
+5
@@ -13,6 +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 destDir: File,
|
val destDir: File,
|
||||||
val qualifiedPackageName: String? = null,
|
val qualifiedPackageName: String? = null,
|
||||||
val jsInteropJvmEngine: String? = null,
|
val jsInteropJvmEngine: String? = null,
|
||||||
@@ -22,6 +23,10 @@ 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) {
|
||||||
|
args.add("--descriptors")
|
||||||
|
}
|
||||||
|
|
||||||
val qualifiedPackageName = qualifiedPackageName
|
val qualifiedPackageName = qualifiedPackageName
|
||||||
if (qualifiedPackageName != null) {
|
if (qualifiedPackageName != null) {
|
||||||
args.add("-p")
|
args.add("-p")
|
||||||
|
|||||||
+7
@@ -28,6 +28,12 @@ abstract class DukatTask(
|
|||||||
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
|
override val requiredNpmDependencies: Set<RequiredKotlinJsDependency>
|
||||||
get() = setOf(nodeJs.versions.dukat)
|
get() = setOf(nodeJs.versions.dukat)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* [DukatMode] what to generate, sources or binaries
|
||||||
|
*/
|
||||||
|
@Input
|
||||||
|
var dukatMode: DukatMode = DukatMode.SOURCE
|
||||||
|
|
||||||
@get:Internal
|
@get:Internal
|
||||||
val dts by lazy {
|
val dts by lazy {
|
||||||
val resolvedCompilation = nodeJs.npmResolutionManager.requireInstalled()[project][compilation]
|
val resolvedCompilation = nodeJs.npmResolutionManager.requireInstalled()[project][compilation]
|
||||||
@@ -81,6 +87,7 @@ abstract class DukatTask(
|
|||||||
DukatRunner(
|
DukatRunner(
|
||||||
compilation,
|
compilation,
|
||||||
dTsFiles,
|
dTsFiles,
|
||||||
|
dukatMode,
|
||||||
destinationDir,
|
destinationDir,
|
||||||
qualifiedPackageName,
|
qualifiedPackageName,
|
||||||
null,
|
null,
|
||||||
|
|||||||
+8
-1
@@ -24,7 +24,14 @@ constructor(
|
|||||||
get() = compilation.npmProject.externalsDir
|
get() = compilation.npmProject.externalsDir
|
||||||
|
|
||||||
private val executor by lazy {
|
private val executor by lazy {
|
||||||
DukatExecutor(nodeJs, dts, compilation.npmProject, true, compareInputs = false)
|
DukatExecutor(
|
||||||
|
nodeJs,
|
||||||
|
dts,
|
||||||
|
dukatMode,
|
||||||
|
compilation.npmProject,
|
||||||
|
true,
|
||||||
|
compareInputs = false
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun run() {
|
override fun run() {
|
||||||
|
|||||||
Reference in New Issue
Block a user