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