[Gradle, JS] Use JAR archive task type only for jar archiveType
This commit is contained in:
committed by
Space Team
parent
c6886fc779
commit
c3bdcc6b0d
+2
-1
@@ -9,6 +9,7 @@ import org.gradle.api.Project
|
||||
import org.gradle.api.invocation.Gradle
|
||||
import org.gradle.api.logging.Logger
|
||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||
import org.gradle.api.tasks.bundling.Zip
|
||||
import org.gradle.jvm.tasks.Jar
|
||||
import org.gradle.workers.WorkQueue
|
||||
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
|
||||
@@ -397,7 +398,7 @@ internal open class GradleCompilerRunner(
|
||||
if (sourceSetName != KotlinCompilation.MAIN_COMPILATION_NAME) return null
|
||||
val jarTaskName = project.extensions.findByType<KotlinJsProjectExtension>()?.js()?.artifactsTaskName
|
||||
|
||||
val jarTask = jarTaskName?.let { project.tasks.findByName(jarTaskName) } as? Jar
|
||||
val jarTask = jarTaskName?.let { project.tasks.findByName(jarTaskName) } as? Zip
|
||||
return jarTask?.archiveFile?.get()?.asFile
|
||||
}
|
||||
|
||||
|
||||
+8
-3
@@ -282,6 +282,9 @@ abstract class KotlinOnlyTargetConfigurator<KotlinCompilationType : KotlinCompil
|
||||
) : AbstractKotlinTargetConfigurator<KotlinTargetType>(createTestCompilation) {
|
||||
open val archiveType: String = ArtifactTypeDefinition.JAR_TYPE
|
||||
|
||||
open val archiveTaskType: Class<out Zip>
|
||||
get() = Jar::class.java
|
||||
|
||||
internal abstract fun buildCompilationProcessor(compilation: KotlinCompilationType): KotlinCompilationProcessor<*>
|
||||
|
||||
override fun configureCompilations(target: KotlinTargetType) {
|
||||
@@ -297,8 +300,10 @@ abstract class KotlinOnlyTargetConfigurator<KotlinCompilationType : KotlinCompil
|
||||
|
||||
/** The implementations are expected to create a [Zip] task under the name [KotlinTarget.artifactsTaskName] of the [target]. */
|
||||
protected open fun createArchiveTasks(target: KotlinTargetType): TaskProvider<out Zip> {
|
||||
//TODO Change Jar on Zip
|
||||
return target.project.registerTask<Jar>(target.artifactsTaskName) {
|
||||
return target.project.registerTask(
|
||||
target.artifactsTaskName,
|
||||
archiveTaskType
|
||||
) {
|
||||
it.description = "Assembles an archive containing the main classes."
|
||||
it.group = BasePlugin.BUILD_GROUP
|
||||
it.from(target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME).output.allOutputs)
|
||||
@@ -397,7 +402,7 @@ internal fun Project.usageByName(usageName: String): Usage =
|
||||
internal fun Project.categoryByName(categoryName: String): Category =
|
||||
objects.named(Category::class.java, categoryName)
|
||||
|
||||
internal inline fun <reified T: Named> Project.attributeValueByName(attributeValueName: String): T =
|
||||
internal inline fun <reified T : Named> Project.attributeValueByName(attributeValueName: String): T =
|
||||
objects.named(T::class.java, attributeValueName)
|
||||
|
||||
fun Configuration.usesPlatformOf(target: KotlinTarget): Configuration {
|
||||
|
||||
+4
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.gradle.utils.getByType
|
||||
internal interface BasePluginConfiguration {
|
||||
val archivesName: Property<String>
|
||||
val distsDirectory: DirectoryProperty
|
||||
val libsDirectory: DirectoryProperty
|
||||
|
||||
interface BasePluginConfigurationVariantFactory : VariantImplementationFactories.VariantImplementationFactory {
|
||||
fun getInstance(project: Project): BasePluginConfiguration
|
||||
@@ -40,4 +41,7 @@ internal class DefaultBasePluginConfiguration(
|
||||
|
||||
override val distsDirectory: DirectoryProperty
|
||||
get() = basePluginExtension.distsDirectory
|
||||
|
||||
override val libsDirectory: DirectoryProperty
|
||||
get() = basePluginExtension.libsDirectory
|
||||
}
|
||||
+11
@@ -41,3 +41,14 @@ val Project.distsDirectory
|
||||
.variantImplementationFactory<BasePluginConfiguration.BasePluginConfigurationVariantFactory>()
|
||||
.getInstance(this)
|
||||
.distsDirectory
|
||||
|
||||
/**
|
||||
* Returns the directory to generate JAR archives into.
|
||||
*
|
||||
* @return The directory. Never returns null.
|
||||
*/
|
||||
val Project.libsDirectory
|
||||
get() = gradle
|
||||
.variantImplementationFactory<BasePluginConfiguration.BasePluginConfigurationVariantFactory>()
|
||||
.getInstance(this)
|
||||
.libsDirectory
|
||||
|
||||
+10
-3
@@ -8,11 +8,12 @@ package org.jetbrains.kotlin.gradle.targets.js.ir
|
||||
import org.gradle.api.attributes.Usage
|
||||
import org.gradle.api.tasks.TaskProvider
|
||||
import org.gradle.api.tasks.bundling.Zip
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.dsl.JsModuleKind
|
||||
import org.jetbrains.kotlin.gradle.dsl.JsSourceMapEmbedMode
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsCompilerOptions
|
||||
import org.jetbrains.kotlin.gradle.plugin.*
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.libsDirectory
|
||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||
@@ -27,6 +28,9 @@ open class KotlinJsIrTargetConfigurator() :
|
||||
override val archiveType: String
|
||||
get() = KLIB_TYPE
|
||||
|
||||
override val archiveTaskType: Class<out Zip>
|
||||
get() = Zip::class.java
|
||||
|
||||
override fun createTestRun(
|
||||
name: String,
|
||||
target: KotlinJsIrTarget
|
||||
@@ -61,7 +65,10 @@ open class KotlinJsIrTargetConfigurator() :
|
||||
|
||||
override fun createArchiveTasks(target: KotlinJsIrTarget): TaskProvider<out Zip> {
|
||||
return super.createArchiveTasks(target).apply {
|
||||
configure { it.archiveExtension.set(KLIB_TYPE) }
|
||||
configure {
|
||||
it.archiveExtension.set(KLIB_TYPE)
|
||||
it.destinationDirectory.set(it.project.libsDirectory)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -71,7 +78,7 @@ open class KotlinJsIrTargetConfigurator() :
|
||||
target.compilations.all { compilation ->
|
||||
compilation.compilerOptions.configure {
|
||||
configureOptions()
|
||||
|
||||
|
||||
if (target.platformType == KotlinPlatformType.wasm) {
|
||||
freeCompilerArgs.add(WASM_BACKEND)
|
||||
}
|
||||
|
||||
+3
@@ -25,6 +25,9 @@ internal class BasePluginConfigurationG70(
|
||||
override val distsDirectory: DirectoryProperty
|
||||
get() = basePluginConvention.distsDirectory
|
||||
|
||||
override val libsDirectory: DirectoryProperty
|
||||
get() = basePluginConvention.libsDirectory
|
||||
|
||||
internal class BasePluginConfigurationVariantFactoryG70 : BasePluginConfiguration.BasePluginConfigurationVariantFactory {
|
||||
override fun getInstance(project: Project): BasePluginConfiguration {
|
||||
return BasePluginConfigurationG70(
|
||||
|
||||
+3
@@ -25,6 +25,9 @@ internal class BasePluginConfigurationG6(
|
||||
override val distsDirectory: DirectoryProperty
|
||||
get() = basePluginConvention.distsDirectory
|
||||
|
||||
override val libsDirectory: DirectoryProperty
|
||||
get() = basePluginConvention.libsDirectory
|
||||
|
||||
internal class BasePluginConfigurationVariantFactoryG6 : BasePluginConfiguration.BasePluginConfigurationVariantFactory {
|
||||
override fun getInstance(project: Project): BasePluginConfiguration {
|
||||
return BasePluginConfigurationG6(
|
||||
|
||||
Reference in New Issue
Block a user