[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.invocation.Gradle
|
||||||
import org.gradle.api.logging.Logger
|
import org.gradle.api.logging.Logger
|
||||||
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
import org.gradle.api.tasks.bundling.AbstractArchiveTask
|
||||||
|
import org.gradle.api.tasks.bundling.Zip
|
||||||
import org.gradle.jvm.tasks.Jar
|
import org.gradle.jvm.tasks.Jar
|
||||||
import org.gradle.workers.WorkQueue
|
import org.gradle.workers.WorkQueue
|
||||||
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
|
import org.jetbrains.kotlin.build.report.metrics.BuildMetricsReporter
|
||||||
@@ -397,7 +398,7 @@ internal open class GradleCompilerRunner(
|
|||||||
if (sourceSetName != KotlinCompilation.MAIN_COMPILATION_NAME) return null
|
if (sourceSetName != KotlinCompilation.MAIN_COMPILATION_NAME) return null
|
||||||
val jarTaskName = project.extensions.findByType<KotlinJsProjectExtension>()?.js()?.artifactsTaskName
|
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
|
return jarTask?.archiveFile?.get()?.asFile
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+8
-3
@@ -282,6 +282,9 @@ abstract class KotlinOnlyTargetConfigurator<KotlinCompilationType : KotlinCompil
|
|||||||
) : AbstractKotlinTargetConfigurator<KotlinTargetType>(createTestCompilation) {
|
) : AbstractKotlinTargetConfigurator<KotlinTargetType>(createTestCompilation) {
|
||||||
open val archiveType: String = ArtifactTypeDefinition.JAR_TYPE
|
open val archiveType: String = ArtifactTypeDefinition.JAR_TYPE
|
||||||
|
|
||||||
|
open val archiveTaskType: Class<out Zip>
|
||||||
|
get() = Jar::class.java
|
||||||
|
|
||||||
internal abstract fun buildCompilationProcessor(compilation: KotlinCompilationType): KotlinCompilationProcessor<*>
|
internal abstract fun buildCompilationProcessor(compilation: KotlinCompilationType): KotlinCompilationProcessor<*>
|
||||||
|
|
||||||
override fun configureCompilations(target: KotlinTargetType) {
|
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]. */
|
/** 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> {
|
protected open fun createArchiveTasks(target: KotlinTargetType): TaskProvider<out Zip> {
|
||||||
//TODO Change Jar on Zip
|
return target.project.registerTask(
|
||||||
return target.project.registerTask<Jar>(target.artifactsTaskName) {
|
target.artifactsTaskName,
|
||||||
|
archiveTaskType
|
||||||
|
) {
|
||||||
it.description = "Assembles an archive containing the main classes."
|
it.description = "Assembles an archive containing the main classes."
|
||||||
it.group = BasePlugin.BUILD_GROUP
|
it.group = BasePlugin.BUILD_GROUP
|
||||||
it.from(target.compilations.getByName(KotlinCompilation.MAIN_COMPILATION_NAME).output.allOutputs)
|
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 =
|
internal fun Project.categoryByName(categoryName: String): Category =
|
||||||
objects.named(Category::class.java, categoryName)
|
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)
|
objects.named(T::class.java, attributeValueName)
|
||||||
|
|
||||||
fun Configuration.usesPlatformOf(target: KotlinTarget): Configuration {
|
fun Configuration.usesPlatformOf(target: KotlinTarget): Configuration {
|
||||||
|
|||||||
+4
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.gradle.utils.getByType
|
|||||||
internal interface BasePluginConfiguration {
|
internal interface BasePluginConfiguration {
|
||||||
val archivesName: Property<String>
|
val archivesName: Property<String>
|
||||||
val distsDirectory: DirectoryProperty
|
val distsDirectory: DirectoryProperty
|
||||||
|
val libsDirectory: DirectoryProperty
|
||||||
|
|
||||||
interface BasePluginConfigurationVariantFactory : VariantImplementationFactories.VariantImplementationFactory {
|
interface BasePluginConfigurationVariantFactory : VariantImplementationFactories.VariantImplementationFactory {
|
||||||
fun getInstance(project: Project): BasePluginConfiguration
|
fun getInstance(project: Project): BasePluginConfiguration
|
||||||
@@ -40,4 +41,7 @@ internal class DefaultBasePluginConfiguration(
|
|||||||
|
|
||||||
override val distsDirectory: DirectoryProperty
|
override val distsDirectory: DirectoryProperty
|
||||||
get() = basePluginExtension.distsDirectory
|
get() = basePluginExtension.distsDirectory
|
||||||
|
|
||||||
|
override val libsDirectory: DirectoryProperty
|
||||||
|
get() = basePluginExtension.libsDirectory
|
||||||
}
|
}
|
||||||
+11
@@ -41,3 +41,14 @@ val Project.distsDirectory
|
|||||||
.variantImplementationFactory<BasePluginConfiguration.BasePluginConfigurationVariantFactory>()
|
.variantImplementationFactory<BasePluginConfiguration.BasePluginConfigurationVariantFactory>()
|
||||||
.getInstance(this)
|
.getInstance(this)
|
||||||
.distsDirectory
|
.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.attributes.Usage
|
||||||
import org.gradle.api.tasks.TaskProvider
|
import org.gradle.api.tasks.TaskProvider
|
||||||
import org.gradle.api.tasks.bundling.Zip
|
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.JsModuleKind
|
||||||
import org.jetbrains.kotlin.gradle.dsl.JsSourceMapEmbedMode
|
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.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
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.targets.js.KotlinJsReportAggregatingTestRun
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
@@ -27,6 +28,9 @@ open class KotlinJsIrTargetConfigurator() :
|
|||||||
override val archiveType: String
|
override val archiveType: String
|
||||||
get() = KLIB_TYPE
|
get() = KLIB_TYPE
|
||||||
|
|
||||||
|
override val archiveTaskType: Class<out Zip>
|
||||||
|
get() = Zip::class.java
|
||||||
|
|
||||||
override fun createTestRun(
|
override fun createTestRun(
|
||||||
name: String,
|
name: String,
|
||||||
target: KotlinJsIrTarget
|
target: KotlinJsIrTarget
|
||||||
@@ -61,7 +65,10 @@ open class KotlinJsIrTargetConfigurator() :
|
|||||||
|
|
||||||
override fun createArchiveTasks(target: KotlinJsIrTarget): TaskProvider<out Zip> {
|
override fun createArchiveTasks(target: KotlinJsIrTarget): TaskProvider<out Zip> {
|
||||||
return super.createArchiveTasks(target).apply {
|
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 ->
|
target.compilations.all { compilation ->
|
||||||
compilation.compilerOptions.configure {
|
compilation.compilerOptions.configure {
|
||||||
configureOptions()
|
configureOptions()
|
||||||
|
|
||||||
if (target.platformType == KotlinPlatformType.wasm) {
|
if (target.platformType == KotlinPlatformType.wasm) {
|
||||||
freeCompilerArgs.add(WASM_BACKEND)
|
freeCompilerArgs.add(WASM_BACKEND)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -25,6 +25,9 @@ internal class BasePluginConfigurationG70(
|
|||||||
override val distsDirectory: DirectoryProperty
|
override val distsDirectory: DirectoryProperty
|
||||||
get() = basePluginConvention.distsDirectory
|
get() = basePluginConvention.distsDirectory
|
||||||
|
|
||||||
|
override val libsDirectory: DirectoryProperty
|
||||||
|
get() = basePluginConvention.libsDirectory
|
||||||
|
|
||||||
internal class BasePluginConfigurationVariantFactoryG70 : BasePluginConfiguration.BasePluginConfigurationVariantFactory {
|
internal class BasePluginConfigurationVariantFactoryG70 : BasePluginConfiguration.BasePluginConfigurationVariantFactory {
|
||||||
override fun getInstance(project: Project): BasePluginConfiguration {
|
override fun getInstance(project: Project): BasePluginConfiguration {
|
||||||
return BasePluginConfigurationG70(
|
return BasePluginConfigurationG70(
|
||||||
|
|||||||
+3
@@ -25,6 +25,9 @@ internal class BasePluginConfigurationG6(
|
|||||||
override val distsDirectory: DirectoryProperty
|
override val distsDirectory: DirectoryProperty
|
||||||
get() = basePluginConvention.distsDirectory
|
get() = basePluginConvention.distsDirectory
|
||||||
|
|
||||||
|
override val libsDirectory: DirectoryProperty
|
||||||
|
get() = basePluginConvention.libsDirectory
|
||||||
|
|
||||||
internal class BasePluginConfigurationVariantFactoryG6 : BasePluginConfiguration.BasePluginConfigurationVariantFactory {
|
internal class BasePluginConfigurationVariantFactoryG6 : BasePluginConfiguration.BasePluginConfigurationVariantFactory {
|
||||||
override fun getInstance(project: Project): BasePluginConfiguration {
|
override fun getInstance(project: Project): BasePluginConfiguration {
|
||||||
return BasePluginConfigurationG6(
|
return BasePluginConfigurationG6(
|
||||||
|
|||||||
Reference in New Issue
Block a user