[Gradle][KPM] Reference Configurations directly
Configurations are not registered/created lazily which makes referencing NamedDomainObjectProvider over Configurations unnecessary for now.
This commit is contained in:
committed by
Space
parent
032981dd83
commit
444b88e438
+18
-18
@@ -9,34 +9,34 @@ import org.gradle.api.NamedDomainObjectProvider
|
|||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
|
|
||||||
interface KotlinDependencyConfigurations {
|
interface KotlinDependencyConfigurations {
|
||||||
val apiConfiguration: NamedDomainObjectProvider<Configuration>
|
val apiConfiguration: Configuration
|
||||||
val implementationConfiguration: NamedDomainObjectProvider<Configuration>
|
val implementationConfiguration: Configuration
|
||||||
val compileOnlyConfiguration: NamedDomainObjectProvider<Configuration>
|
val compileOnlyConfiguration: Configuration
|
||||||
val runtimeOnlyConfiguration: NamedDomainObjectProvider<Configuration>
|
val runtimeOnlyConfiguration: Configuration
|
||||||
|
|
||||||
/** This configuration includes the dependencies from the refines-parents */
|
/** This configuration includes the dependencies from the refines-parents */
|
||||||
val transitiveApiConfiguration: NamedDomainObjectProvider<Configuration>
|
val transitiveApiConfiguration: Configuration
|
||||||
|
|
||||||
/** This configuration includes the dependencies from the refines-parents */
|
/** This configuration includes the dependencies from the refines-parents */
|
||||||
val transitiveImplementationConfiguration: NamedDomainObjectProvider<Configuration>
|
val transitiveImplementationConfiguration: Configuration
|
||||||
|
|
||||||
private class Impl(
|
private class Impl(
|
||||||
override val apiConfiguration: NamedDomainObjectProvider<Configuration>,
|
override val apiConfiguration: Configuration,
|
||||||
override val implementationConfiguration: NamedDomainObjectProvider<Configuration>,
|
override val implementationConfiguration: Configuration,
|
||||||
override val compileOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
|
override val compileOnlyConfiguration: Configuration,
|
||||||
override val runtimeOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
|
override val runtimeOnlyConfiguration: Configuration,
|
||||||
override val transitiveApiConfiguration: NamedDomainObjectProvider<Configuration>,
|
override val transitiveApiConfiguration:Configuration,
|
||||||
override val transitiveImplementationConfiguration: NamedDomainObjectProvider<Configuration>
|
override val transitiveImplementationConfiguration: Configuration
|
||||||
) : KotlinDependencyConfigurations
|
) : KotlinDependencyConfigurations
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun create(
|
fun create(
|
||||||
apiConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiConfiguration: Configuration,
|
||||||
implementationConfiguration: NamedDomainObjectProvider<Configuration>,
|
implementationConfiguration: Configuration,
|
||||||
compileOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileOnlyConfiguration: Configuration,
|
||||||
runtimeOnlyConfiguration: NamedDomainObjectProvider<Configuration>,
|
runtimeOnlyConfiguration: Configuration,
|
||||||
transitiveApiConfiguration: NamedDomainObjectProvider<Configuration>,
|
transitiveApiConfiguration: Configuration,
|
||||||
transitiveImplementationConfiguration: NamedDomainObjectProvider<Configuration>
|
transitiveImplementationConfiguration: Configuration
|
||||||
): KotlinDependencyConfigurations = Impl(
|
): KotlinDependencyConfigurations = Impl(
|
||||||
apiConfiguration = apiConfiguration,
|
apiConfiguration = apiConfiguration,
|
||||||
implementationConfiguration = implementationConfiguration,
|
implementationConfiguration = implementationConfiguration,
|
||||||
|
|||||||
+5
-5
@@ -18,7 +18,7 @@ interface KotlinGradleVariant : KotlinGradleFragment, KotlinModuleVariant {
|
|||||||
val platformType: KotlinPlatformType
|
val platformType: KotlinPlatformType
|
||||||
|
|
||||||
// TODO generalize with KotlinCompilation?
|
// TODO generalize with KotlinCompilation?
|
||||||
val compileDependenciesConfiguration: NamedDomainObjectProvider<Configuration>
|
val compileDependenciesConfiguration: Configuration
|
||||||
|
|
||||||
var compileDependencyFiles: FileCollection
|
var compileDependencyFiles: FileCollection
|
||||||
|
|
||||||
@@ -29,28 +29,28 @@ interface KotlinGradleVariant : KotlinGradleFragment, KotlinModuleVariant {
|
|||||||
val sourceArchiveTaskName: String
|
val sourceArchiveTaskName: String
|
||||||
|
|
||||||
// TODO generalize exposing outputs: what if a variant has more than one such configurations or none?
|
// TODO generalize exposing outputs: what if a variant has more than one such configurations or none?
|
||||||
val apiElementsConfiguration: NamedDomainObjectProvider<Configuration>
|
val apiElementsConfiguration: Configuration
|
||||||
|
|
||||||
val gradleVariantNames: Set<String>
|
val gradleVariantNames: Set<String>
|
||||||
}
|
}
|
||||||
|
|
||||||
interface KotlinGradleVariantWithRuntime : KotlinGradleVariant {
|
interface KotlinGradleVariantWithRuntime : KotlinGradleVariant {
|
||||||
// TODO deduplicate with KotlinCompilation?
|
// TODO deduplicate with KotlinCompilation?
|
||||||
val runtimeDependenciesConfiguration: NamedDomainObjectProvider<Configuration>
|
val runtimeDependenciesConfiguration: Configuration
|
||||||
|
|
||||||
var runtimeDependencyFiles: FileCollection
|
var runtimeDependencyFiles: FileCollection
|
||||||
|
|
||||||
val runtimeFiles: ConfigurableFileCollection
|
val runtimeFiles: ConfigurableFileCollection
|
||||||
|
|
||||||
// TODO generalize exposing outputs: what if a variant has more than one such configurations or none?
|
// TODO generalize exposing outputs: what if a variant has more than one such configurations or none?
|
||||||
val runtimeElementsConfiguration: NamedDomainObjectProvider<Configuration>
|
val runtimeElementsConfiguration: Configuration
|
||||||
}
|
}
|
||||||
|
|
||||||
interface KotlinNativeVariant : KotlinGradleVariant {
|
interface KotlinNativeVariant : KotlinGradleVariant {
|
||||||
override val platformType: KotlinPlatformType
|
override val platformType: KotlinPlatformType
|
||||||
get() = KotlinPlatformType.native
|
get() = KotlinPlatformType.native
|
||||||
|
|
||||||
val hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
val hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
|
|
||||||
var enableEndorsedLibraries: Boolean
|
var enableEndorsedLibraries: Boolean
|
||||||
}
|
}
|
||||||
|
|||||||
+16
-16
@@ -31,14 +31,14 @@ class KotlinJvmVariantFactoryTest : AbstractKpmExtensionTest() {
|
|||||||
fun `test accessing configurations`() {
|
fun `test accessing configurations`() {
|
||||||
val variant = KotlinJvmVariantFactory(kotlin.main).create("jvm")
|
val variant = KotlinJvmVariantFactory(kotlin.main).create("jvm")
|
||||||
|
|
||||||
variant.compileDependenciesConfiguration.get()
|
variant.compileDependenciesConfiguration
|
||||||
variant.runtimeDependenciesConfiguration.get()
|
variant.runtimeDependenciesConfiguration
|
||||||
variant.apiElementsConfiguration.get()
|
variant.apiElementsConfiguration
|
||||||
variant.runtimeElementsConfiguration.get()
|
variant.runtimeElementsConfiguration
|
||||||
variant.implementationConfiguration.get()
|
variant.implementationConfiguration
|
||||||
variant.apiConfiguration.get()
|
variant.apiConfiguration
|
||||||
variant.runtimeOnlyConfiguration.get()
|
variant.runtimeOnlyConfiguration
|
||||||
variant.compileOnlyConfiguration.get()
|
variant.compileOnlyConfiguration
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -88,13 +88,13 @@ class KotlinJvmVariantFactoryTest : AbstractKpmExtensionTest() {
|
|||||||
val variant = KotlinJvmVariantFactory(
|
val variant = KotlinJvmVariantFactory(
|
||||||
KotlinJvmVariantInstantiator(kotlin.main),
|
KotlinJvmVariantInstantiator(kotlin.main),
|
||||||
KotlinJvmVariantConfigurator(compileDependenciesConfigurator = { fragment, configuration ->
|
KotlinJvmVariantConfigurator(compileDependenciesConfigurator = { fragment, configuration ->
|
||||||
assertSame(fragment.compileDependenciesConfiguration.get(), configuration)
|
assertSame(fragment.compileDependenciesConfiguration, configuration)
|
||||||
configuration.attributes.attribute(testAttribute, "compileDependencies")
|
configuration.attributes.attribute(testAttribute, "compileDependencies")
|
||||||
})
|
})
|
||||||
).create("jvm")
|
).create("jvm")
|
||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"compileDependencies", variant.compileDependenciesConfiguration.get().attributes.getAttribute(testAttribute)
|
"compileDependencies", variant.compileDependenciesConfiguration.attributes.getAttribute(testAttribute)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -103,13 +103,13 @@ class KotlinJvmVariantFactoryTest : AbstractKpmExtensionTest() {
|
|||||||
val variant = KotlinJvmVariantFactory(
|
val variant = KotlinJvmVariantFactory(
|
||||||
KotlinJvmVariantInstantiator(kotlin.main),
|
KotlinJvmVariantInstantiator(kotlin.main),
|
||||||
KotlinJvmVariantConfigurator(runtimeDependenciesConfigurator = { fragment, configuration ->
|
KotlinJvmVariantConfigurator(runtimeDependenciesConfigurator = { fragment, configuration ->
|
||||||
assertSame(fragment.runtimeDependenciesConfiguration.get(), configuration)
|
assertSame(fragment.runtimeDependenciesConfiguration, configuration)
|
||||||
configuration.attributes.attribute(testAttribute, "runtimeDependencies")
|
configuration.attributes.attribute(testAttribute, "runtimeDependencies")
|
||||||
})
|
})
|
||||||
).create("jvm")
|
).create("jvm")
|
||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"runtimeDependencies", variant.runtimeDependenciesConfiguration.get().attributes.getAttribute(testAttribute)
|
"runtimeDependencies", variant.runtimeDependenciesConfiguration.attributes.getAttribute(testAttribute)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,13 +117,13 @@ class KotlinJvmVariantFactoryTest : AbstractKpmExtensionTest() {
|
|||||||
fun `test custom configure apiElementsConfiguration`() {
|
fun `test custom configure apiElementsConfiguration`() {
|
||||||
val variant = KotlinJvmVariantFactory(
|
val variant = KotlinJvmVariantFactory(
|
||||||
KotlinJvmVariantInstantiator(kotlin.main), KotlinJvmVariantConfigurator(apiElementsConfigurator = { fragment, configuration ->
|
KotlinJvmVariantInstantiator(kotlin.main), KotlinJvmVariantConfigurator(apiElementsConfigurator = { fragment, configuration ->
|
||||||
assertSame(fragment.apiElementsConfiguration.get(), configuration)
|
assertSame(fragment.apiElementsConfiguration, configuration)
|
||||||
configuration.attributes.attribute(testAttribute, "apiElements")
|
configuration.attributes.attribute(testAttribute, "apiElements")
|
||||||
})
|
})
|
||||||
).create("jvm")
|
).create("jvm")
|
||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"apiElements", variant.apiElementsConfiguration.get().attributes.getAttribute(testAttribute)
|
"apiElements", variant.apiElementsConfiguration.attributes.getAttribute(testAttribute)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,13 +132,13 @@ class KotlinJvmVariantFactoryTest : AbstractKpmExtensionTest() {
|
|||||||
val variant = KotlinJvmVariantFactory(
|
val variant = KotlinJvmVariantFactory(
|
||||||
KotlinJvmVariantInstantiator(kotlin.main),
|
KotlinJvmVariantInstantiator(kotlin.main),
|
||||||
KotlinJvmVariantConfigurator(runtimeElementsConfigurator = { fragment, configuration ->
|
KotlinJvmVariantConfigurator(runtimeElementsConfigurator = { fragment, configuration ->
|
||||||
assertSame(fragment.runtimeElementsConfiguration.get(), configuration)
|
assertSame(fragment.runtimeElementsConfiguration, configuration)
|
||||||
configuration.attributes.attribute(testAttribute, "runtimeElements")
|
configuration.attributes.attribute(testAttribute, "runtimeElements")
|
||||||
})
|
})
|
||||||
).create("jvm")
|
).create("jvm")
|
||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
"runtimeElements", variant.runtimeElementsConfiguration.get().attributes.getAttribute(testAttribute)
|
"runtimeElements", variant.runtimeElementsConfiguration.attributes.getAttribute(testAttribute)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -53,7 +53,7 @@ class KotlinNativeVariantFactoryTest(
|
|||||||
fun `test compileDependenciesConfiguration - contains konanTarget`() {
|
fun `test compileDependenciesConfiguration - contains konanTarget`() {
|
||||||
assertEquals(
|
assertEquals(
|
||||||
variantConstructor.konanTarget.name,
|
variantConstructor.konanTarget.name,
|
||||||
variant.compileDependenciesConfiguration.get()
|
variant.compileDependenciesConfiguration
|
||||||
.attributes.getAttribute(KotlinNativeTarget.konanTargetAttribute)
|
.attributes.getAttribute(KotlinNativeTarget.konanTargetAttribute)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -62,7 +62,7 @@ class KotlinNativeVariantFactoryTest(
|
|||||||
fun `test apiElementsConfiguration - contains konanTarget`() {
|
fun `test apiElementsConfiguration - contains konanTarget`() {
|
||||||
assertEquals(
|
assertEquals(
|
||||||
variantConstructor.konanTarget.name,
|
variantConstructor.konanTarget.name,
|
||||||
variant.apiElementsConfiguration.get()
|
variant.apiElementsConfiguration
|
||||||
.attributes.getAttribute(KotlinNativeTarget.konanTargetAttribute)
|
.attributes.getAttribute(KotlinNativeTarget.konanTargetAttribute)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -334,7 +334,7 @@ class GradleModuleVariantResolver : ModuleVariantResolver {
|
|||||||
project.configurations.getByName(compilation.compileDependencyConfigurationName)
|
project.configurations.getByName(compilation.compileDependencyConfigurationName)
|
||||||
}
|
}
|
||||||
is KotlinPm20ProjectExtension -> {
|
is KotlinPm20ProjectExtension -> {
|
||||||
(requestingVariant as KotlinGradleVariant).compileDependenciesConfiguration.get()
|
(requestingVariant as KotlinGradleVariant).compileDependenciesConfiguration
|
||||||
}
|
}
|
||||||
else -> error("could not find the compile dependencies configuration for variant $requestingVariant")
|
else -> error("could not find the compile dependencies configuration for variant $requestingVariant")
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -161,7 +161,7 @@ internal class FragmentGranularMetadataResolver(
|
|||||||
// resolve the dependencies of that variant getting the host-specific metadata artifact
|
// resolve the dependencies of that variant getting the host-specific metadata artifact
|
||||||
relevantVariantResolution?.let { resolution ->
|
relevantVariantResolution?.let { resolution ->
|
||||||
val configurationResolvingPlatformVariant =
|
val configurationResolvingPlatformVariant =
|
||||||
(resolution.requestingVariant as KotlinGradleVariant).compileDependenciesConfiguration.get()
|
(resolution.requestingVariant as KotlinGradleVariant).compileDependenciesConfiguration
|
||||||
val hostSpecificArtifact = ResolvedMppVariantsProvider.get(project)
|
val hostSpecificArtifact = ResolvedMppVariantsProvider.get(project)
|
||||||
.getHostSpecificMetadataArtifactByRootModule(
|
.getHostSpecificMetadataArtifactByRootModule(
|
||||||
dependencyModule.moduleIdentifier,
|
dependencyModule.moduleIdentifier,
|
||||||
|
|||||||
+9
-14
@@ -6,9 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||||
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
|
||||||
import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
|
|
||||||
import org.jetbrains.kotlin.gradle.utils.extendsFrom
|
|
||||||
|
|
||||||
interface KotlinDependencyConfigurationsFactory {
|
interface KotlinDependencyConfigurationsFactory {
|
||||||
fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinDependencyConfigurations
|
fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinDependencyConfigurations
|
||||||
@@ -18,12 +15,12 @@ object DefaultKotlinDependencyConfigurationsFactory : KotlinDependencyConfigurat
|
|||||||
|
|
||||||
override fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinDependencyConfigurations {
|
override fun create(module: KotlinGradleModule, names: FragmentNameDisambiguation): KotlinDependencyConfigurations {
|
||||||
val configurations = module.project.configurations
|
val configurations = module.project.configurations
|
||||||
val apiConfiguration = configurations.locateOrRegister(names.disambiguateName("api"))
|
val apiConfiguration = configurations.maybeCreate(names.disambiguateName("api"))
|
||||||
val implementationConfiguration = configurations.locateOrRegister(names.disambiguateName("implementation"))
|
val implementationConfiguration = configurations.maybeCreate(names.disambiguateName("implementation"))
|
||||||
val compileOnlyConfiguration = configurations.locateOrRegister(names.disambiguateName("compileOnly"))
|
val compileOnlyConfiguration = configurations.maybeCreate(names.disambiguateName("compileOnly"))
|
||||||
val runtimeOnlyConfiguration = configurations.locateOrRegister(names.disambiguateName("runtimeOnly"))
|
val runtimeOnlyConfiguration = configurations.maybeCreate(names.disambiguateName("runtimeOnly"))
|
||||||
val transitiveApiConfiguration = configurations.locateOrRegister(names.disambiguateName("transitiveApi"))
|
val transitiveApiConfiguration = configurations.maybeCreate(names.disambiguateName("transitiveApi"))
|
||||||
val transitiveImplementationConfiguration = configurations.locateOrRegister(names.disambiguateName("transitiveImplementation"))
|
val transitiveImplementationConfiguration = configurations.maybeCreate(names.disambiguateName("transitiveImplementation"))
|
||||||
|
|
||||||
listOf(
|
listOf(
|
||||||
apiConfiguration,
|
apiConfiguration,
|
||||||
@@ -32,11 +29,9 @@ object DefaultKotlinDependencyConfigurationsFactory : KotlinDependencyConfigurat
|
|||||||
runtimeOnlyConfiguration,
|
runtimeOnlyConfiguration,
|
||||||
transitiveApiConfiguration,
|
transitiveApiConfiguration,
|
||||||
transitiveImplementationConfiguration
|
transitiveImplementationConfiguration
|
||||||
).forEach { configurationProvider ->
|
).forEach { configuration ->
|
||||||
configurationProvider.configure { configuration ->
|
configuration.isCanBeConsumed = false
|
||||||
configuration.isCanBeConsumed = false
|
configuration.isCanBeResolved = false
|
||||||
configuration.isCanBeResolved = false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
transitiveApiConfiguration.extendsFrom(apiConfiguration)
|
transitiveApiConfiguration.extendsFrom(apiConfiguration)
|
||||||
|
|||||||
+2
-3
@@ -5,14 +5,13 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20
|
||||||
|
|
||||||
import org.gradle.api.NamedDomainObjectProvider
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||||
|
|
||||||
interface KotlinFragmentConfigurationInstantiator {
|
interface KotlinFragmentConfigurationInstantiator {
|
||||||
fun locateOrRegister(
|
fun create(
|
||||||
module: KotlinGradleModule,
|
module: KotlinGradleModule,
|
||||||
names: FragmentNameDisambiguation,
|
names: FragmentNameDisambiguation,
|
||||||
dependencies: KotlinDependencyConfigurations
|
dependencies: KotlinDependencyConfigurations
|
||||||
): NamedDomainObjectProvider<Configuration>
|
): Configuration
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-8
@@ -14,8 +14,7 @@ import org.jetbrains.kotlin.gradle.tasks.registerTask
|
|||||||
import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION
|
import org.jetbrains.kotlin.library.KLIB_FILE_EXTENSION
|
||||||
import org.jetbrains.kotlin.project.model.refinesClosure
|
import org.jetbrains.kotlin.project.model.refinesClosure
|
||||||
|
|
||||||
object KotlinHostSpecificMetadataArtifactConfigurator :
|
object KotlinHostSpecificMetadataArtifactConfigurator : KotlinGradleFragmentFactory.FragmentConfigurator<KotlinNativeVariantInternal> {
|
||||||
KotlinGradleFragmentFactory.FragmentConfigurator<KotlinNativeVariantInternal> {
|
|
||||||
override fun configure(fragment: KotlinNativeVariantInternal) {
|
override fun configure(fragment: KotlinNativeVariantInternal) {
|
||||||
val project = fragment.project
|
val project = fragment.project
|
||||||
val hostSpecificMetadataElements = fragment.hostSpecificMetadataElementsConfiguration ?: return
|
val hostSpecificMetadataElements = fragment.hostSpecificMetadataElementsConfiguration ?: return
|
||||||
@@ -36,11 +35,9 @@ object KotlinHostSpecificMetadataArtifactConfigurator :
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hostSpecificMetadataElements.configure { configuration ->
|
project.artifacts.add(hostSpecificMetadataElements.name, hostSpecificMetadataJar)
|
||||||
project.artifacts.add(configuration.name, hostSpecificMetadataJar)
|
hostSpecificMetadataElements.dependencies.addAllLater(project.objects.listProperty(Dependency::class.java).apply {
|
||||||
configuration.dependencies.addAllLater(project.objects.listProperty(Dependency::class.java).apply {
|
set(project.provider { fragment.apiElementsConfiguration.allDependencies })
|
||||||
set(project.provider { fragment.apiElementsConfiguration.get().allDependencies })
|
})
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-4
@@ -17,10 +17,10 @@ open class KotlinJvmVariant(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependenciesConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependenciesConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
runtimeDependenciesConfiguration: NamedDomainObjectProvider<Configuration>,
|
runtimeDependenciesConfiguration: Configuration,
|
||||||
runtimeElementsConfiguration: NamedDomainObjectProvider<Configuration>
|
runtimeElementsConfiguration: Configuration
|
||||||
) : KotlinGradlePublishedVariantWithRuntime(
|
) : KotlinGradlePublishedVariantWithRuntime(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
|
|||||||
+8
-21
@@ -50,10 +50,10 @@ class KotlinJvmVariantInstantiator(
|
|||||||
containingModule = module,
|
containingModule = module,
|
||||||
fragmentName = name,
|
fragmentName = name,
|
||||||
dependencyConfigurations = dependencies,
|
dependencyConfigurations = dependencies,
|
||||||
compileDependenciesConfiguration = compileDependenciesConfigurationInstantiator.locateOrRegister(module, names, dependencies),
|
compileDependenciesConfiguration = compileDependenciesConfigurationInstantiator.create(module, names, dependencies),
|
||||||
apiElementsConfiguration = apiElementsConfigurationInstantiator.locateOrRegister(module, names, dependencies),
|
apiElementsConfiguration = apiElementsConfigurationInstantiator.create(module, names, dependencies),
|
||||||
runtimeDependenciesConfiguration = runtimeDependenciesConfigurationInstantiator.locateOrRegister(module, names, dependencies),
|
runtimeDependenciesConfiguration = runtimeDependenciesConfigurationInstantiator.create(module, names, dependencies),
|
||||||
runtimeElementsConfiguration = runtimeElementsConfigurationInstantiator.locateOrRegister(module, names, dependencies)
|
runtimeElementsConfiguration = runtimeElementsConfigurationInstantiator.create(module, names, dependencies)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -86,24 +86,11 @@ class KotlinJvmVariantConfigurator(
|
|||||||
) : KotlinGradleFragmentFactory.FragmentConfigurator<KotlinJvmVariant> {
|
) : KotlinGradleFragmentFactory.FragmentConfigurator<KotlinJvmVariant> {
|
||||||
|
|
||||||
override fun configure(fragment: KotlinJvmVariant) {
|
override fun configure(fragment: KotlinJvmVariant) {
|
||||||
fragment.compileDependenciesConfiguration.configure { configuration ->
|
compileDependenciesConfigurator.configure(fragment, fragment.compileDependenciesConfiguration)
|
||||||
compileDependenciesConfigurator.configure(fragment, configuration)
|
runtimeDependenciesConfigurator.configure(fragment, fragment.runtimeDependenciesConfiguration)
|
||||||
}
|
apiElementsConfigurator.configure(fragment, fragment.apiElementsConfiguration)
|
||||||
|
runtimeElementsConfigurator.configure(fragment, fragment.runtimeElementsConfiguration)
|
||||||
fragment.runtimeDependenciesConfiguration.configure { configuration ->
|
|
||||||
runtimeDependenciesConfigurator.configure(fragment, configuration)
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment.apiElementsConfiguration.configure { configuration ->
|
|
||||||
apiElementsConfigurator.configure(fragment, configuration)
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment.runtimeElementsConfiguration.configure { configuration ->
|
|
||||||
runtimeElementsConfigurator.configure(fragment, configuration)
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceDirectoriesConfigurator.configure(fragment)
|
sourceDirectoriesConfigurator.configure(fragment)
|
||||||
|
|
||||||
compileTaskConfigurator.registerCompileTasks(fragment)
|
compileTaskConfigurator.registerCompileTasks(fragment)
|
||||||
sourceArchiveTaskConfigurator.registerSourceArchiveTask(fragment)
|
sourceArchiveTaskConfigurator.registerSourceArchiveTask(fragment)
|
||||||
publicationConfigurator.configure(fragment)
|
publicationConfigurator.configure(fragment)
|
||||||
|
|||||||
+24
-24
@@ -20,9 +20,9 @@ abstract class KotlinNativeVariantInternal(
|
|||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
val konanTarget: KonanTarget,
|
val konanTarget: KonanTarget,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
final override val hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
final override val hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) : KotlinNativeVariant,
|
) : KotlinNativeVariant,
|
||||||
KotlinGradleVariantInternal(
|
KotlinGradleVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
@@ -52,18 +52,18 @@ class KotlinNativeVariantConstructor<T : KotlinNativeVariantInternal>(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) -> T
|
) -> T
|
||||||
) {
|
) {
|
||||||
operator fun invoke(
|
operator fun invoke(
|
||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
): T = constructor(
|
): T = constructor(
|
||||||
containingModule, fragmentName,
|
containingModule, fragmentName,
|
||||||
dependencyConfigurations,
|
dependencyConfigurations,
|
||||||
@@ -78,9 +78,9 @@ open class KotlinLinuxX64Variant @Inject constructor(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) : KotlinNativeVariantInternal(
|
) : KotlinNativeVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
@@ -101,9 +101,9 @@ open class KotlinMacosX64Variant @Inject constructor(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) : KotlinNativeVariantInternal(
|
) : KotlinNativeVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
@@ -123,9 +123,9 @@ open class KotlinMacosX64Variant @Inject constructor(
|
|||||||
open class KotlinMacosArm64Variant @Inject constructor(
|
open class KotlinMacosArm64Variant @Inject constructor(
|
||||||
containingModule: KotlinGradleModule, fragmentName: String,
|
containingModule: KotlinGradleModule, fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) : KotlinNativeVariantInternal(
|
) : KotlinNativeVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
@@ -146,9 +146,9 @@ open class KotlinIosX64Variant @Inject constructor(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) : KotlinNativeVariantInternal(
|
) : KotlinNativeVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
@@ -169,9 +169,9 @@ open class KotlinIosArm64Variant @Inject constructor(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
hostSpecificMetadataElementsConfiguration: NamedDomainObjectProvider<Configuration>?
|
hostSpecificMetadataElementsConfiguration: Configuration?
|
||||||
) : KotlinNativeVariantInternal(
|
) : KotlinNativeVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
|
|||||||
+6
-13
@@ -44,10 +44,10 @@ class KotlinNativeVariantInstantiator<T : KotlinNativeVariantInternal>(
|
|||||||
containingModule = module,
|
containingModule = module,
|
||||||
fragmentName = name,
|
fragmentName = name,
|
||||||
dependencyConfigurations = dependencies,
|
dependencyConfigurations = dependencies,
|
||||||
compileDependencyConfiguration = compileDependenciesConfigurationInstantiator.locateOrRegister(module, names, dependencies),
|
compileDependencyConfiguration = compileDependenciesConfigurationInstantiator.create(module, names, dependencies),
|
||||||
apiElementsConfiguration = apiElementsConfigurationInstantiator.locateOrRegister(module, names, dependencies),
|
apiElementsConfiguration = apiElementsConfigurationInstantiator.create(module, names, dependencies),
|
||||||
hostSpecificMetadataElementsConfiguration =
|
hostSpecificMetadataElementsConfiguration =
|
||||||
hostSpecificMetadataElementsConfigurationInstantiator?.locateOrRegister(module, names, dependencies)
|
hostSpecificMetadataElementsConfigurationInstantiator?.create(module, names, dependencies)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -79,18 +79,11 @@ class KotlinNativeVariantConfigurator<T : KotlinNativeVariantInternal>(
|
|||||||
) : KotlinGradleFragmentFactory.FragmentConfigurator<T> {
|
) : KotlinGradleFragmentFactory.FragmentConfigurator<T> {
|
||||||
|
|
||||||
override fun configure(fragment: T) {
|
override fun configure(fragment: T) {
|
||||||
fragment.compileDependenciesConfiguration.configure { configuration ->
|
compileDependenciesConfigurator.configure(fragment, fragment.compileDependenciesConfiguration)
|
||||||
compileDependenciesConfigurator.configure(fragment, configuration)
|
apiElementsConfigurator.configure(fragment, fragment.apiElementsConfiguration)
|
||||||
}
|
fragment.hostSpecificMetadataElementsConfiguration?.let { configuration ->
|
||||||
|
|
||||||
fragment.apiElementsConfiguration.configure { configuration ->
|
|
||||||
apiElementsConfigurator.configure(fragment, configuration)
|
|
||||||
}
|
|
||||||
|
|
||||||
fragment.hostSpecificMetadataElementsConfiguration?.configure { configuration ->
|
|
||||||
hostSpecificMetadataElementsConfigurator.configure(fragment, configuration)
|
hostSpecificMetadataElementsConfigurator.configure(fragment, configuration)
|
||||||
}
|
}
|
||||||
|
|
||||||
hostSpecificMetadataArtifactConfigurator.configure(fragment)
|
hostSpecificMetadataArtifactConfigurator.configure(fragment)
|
||||||
sourceDirectoriesConfigurator.configure(fragment)
|
sourceDirectoriesConfigurator.configure(fragment)
|
||||||
compileTaskConfigurator.registerCompileTasks(fragment)
|
compileTaskConfigurator.registerCompileTasks(fragment)
|
||||||
|
|||||||
+1
-1
@@ -54,7 +54,7 @@ internal open class TransformKotlinGranularMetadataForFragment
|
|||||||
val participatingFragments = fragment.refinesClosure
|
val participatingFragments = fragment.refinesClosure
|
||||||
val participatingCompilations = participatingFragments.flatMap { it.containingModule.variantsContainingFragment(it) }
|
val participatingCompilations = participatingFragments.flatMap { it.containingModule.variantsContainingFragment(it) }
|
||||||
participatingCompilations.associate { variant ->
|
participatingCompilations.associate { variant ->
|
||||||
variant.fragmentName to variant.compileDependenciesConfiguration.get()
|
variant.fragmentName to variant.compileDependenciesConfiguration
|
||||||
.allDependencies.map { listOf(it.group, it.name, it.version) }.toSet()
|
.allDependencies.map { listOf(it.group, it.name, it.version) }.toSet()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-11
@@ -25,8 +25,8 @@ abstract class KotlinGradleVariantInternal(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
final override val compileDependenciesConfiguration: NamedDomainObjectProvider<Configuration>,
|
final override val compileDependenciesConfiguration: Configuration,
|
||||||
final override val apiElementsConfiguration: NamedDomainObjectProvider<Configuration>
|
final override val apiElementsConfiguration: Configuration
|
||||||
) : KotlinGradleFragmentInternal(
|
) : KotlinGradleFragmentInternal(
|
||||||
containingModule, fragmentName, dependencyConfigurations
|
containingModule, fragmentName, dependencyConfigurations
|
||||||
), KotlinGradleVariant {
|
), KotlinGradleVariant {
|
||||||
@@ -34,7 +34,7 @@ abstract class KotlinGradleVariantInternal(
|
|||||||
override val variantAttributes: Map<KotlinAttributeKey, String>
|
override val variantAttributes: Map<KotlinAttributeKey, String>
|
||||||
get() = mapOf(KotlinPlatformTypeAttribute to kotlinPlatformTypeAttributeFromPlatform(platformType)) // TODO user attributes
|
get() = mapOf(KotlinPlatformTypeAttribute to kotlinPlatformTypeAttributeFromPlatform(platformType)) // TODO user attributes
|
||||||
|
|
||||||
override var compileDependencyFiles: FileCollection = project.files({ compileDependenciesConfiguration.get() })
|
override var compileDependencyFiles: FileCollection = project.files({ compileDependenciesConfiguration })
|
||||||
|
|
||||||
internal abstract val compilationData: KotlinVariantCompilationDataInternal<*>
|
internal abstract val compilationData: KotlinVariantCompilationDataInternal<*>
|
||||||
|
|
||||||
@@ -80,10 +80,10 @@ abstract class KotlinGradleVariantWithRuntimeInternal(
|
|||||||
containingModule: KotlinGradleModule,
|
containingModule: KotlinGradleModule,
|
||||||
fragmentName: String,
|
fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
final override val runtimeDependenciesConfiguration: NamedDomainObjectProvider<Configuration>,
|
final override val runtimeDependenciesConfiguration: Configuration,
|
||||||
final override val runtimeElementsConfiguration: NamedDomainObjectProvider<Configuration>
|
final override val runtimeElementsConfiguration: Configuration
|
||||||
) : KotlinGradleVariantInternal(
|
) : KotlinGradleVariantInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
@@ -105,10 +105,10 @@ private fun defaultModuleSuffix(module: KotlinGradleModule, variantName: String)
|
|||||||
abstract class KotlinGradlePublishedVariantWithRuntime(
|
abstract class KotlinGradlePublishedVariantWithRuntime(
|
||||||
containingModule: KotlinGradleModule, fragmentName: String,
|
containingModule: KotlinGradleModule, fragmentName: String,
|
||||||
dependencyConfigurations: KotlinDependencyConfigurations,
|
dependencyConfigurations: KotlinDependencyConfigurations,
|
||||||
compileDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
compileDependencyConfiguration: Configuration,
|
||||||
apiElementsConfiguration: NamedDomainObjectProvider<Configuration>,
|
apiElementsConfiguration: Configuration,
|
||||||
runtimeDependencyConfiguration: NamedDomainObjectProvider<Configuration>,
|
runtimeDependencyConfiguration: Configuration,
|
||||||
runtimeElementsConfiguration: NamedDomainObjectProvider<Configuration>
|
runtimeElementsConfiguration: Configuration
|
||||||
) : KotlinGradleVariantWithRuntimeInternal(
|
) : KotlinGradleVariantWithRuntimeInternal(
|
||||||
containingModule = containingModule,
|
containingModule = containingModule,
|
||||||
fragmentName = fragmentName,
|
fragmentName = fragmentName,
|
||||||
|
|||||||
+4
-6
@@ -5,7 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
|
||||||
|
|
||||||
import org.gradle.api.NamedDomainObjectProvider
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.attributes.Bundling
|
import org.gradle.api.attributes.Bundling
|
||||||
import org.gradle.api.attributes.Category
|
import org.gradle.api.attributes.Category
|
||||||
@@ -13,22 +12,21 @@ import org.gradle.jvm.tasks.Jar
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.disambiguateName
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask
|
||||||
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
|
import org.jetbrains.kotlin.gradle.utils.dashSeparatedName
|
||||||
|
|
||||||
interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
interface KotlinApiElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
||||||
|
|
||||||
object DefaultKotlinApiElementsConfigurationInstantiator : KotlinApiElementsConfigurationInstantiator {
|
object DefaultKotlinApiElementsConfigurationInstantiator : KotlinApiElementsConfigurationInstantiator {
|
||||||
override fun locateOrRegister(
|
override fun create(
|
||||||
module: KotlinGradleModule,
|
module: KotlinGradleModule,
|
||||||
names: FragmentNameDisambiguation,
|
names: FragmentNameDisambiguation,
|
||||||
dependencies: KotlinDependencyConfigurations
|
dependencies: KotlinDependencyConfigurations
|
||||||
): NamedDomainObjectProvider<Configuration> {
|
): Configuration {
|
||||||
return module.project.configurations.locateOrRegister(names.disambiguateName("apiElements")) {
|
return module.project.configurations.maybeCreate(names.disambiguateName("apiElements")).apply {
|
||||||
isCanBeResolved = false
|
isCanBeResolved = false
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
extendsFrom(dependencies.transitiveApiConfiguration.get())
|
extendsFrom(dependencies.transitiveApiConfiguration)
|
||||||
module.ifMadePublic { isCanBeConsumed = true }
|
module.ifMadePublic { isCanBeConsumed = true }
|
||||||
|
|
||||||
attributes.attribute(Category.CATEGORY_ATTRIBUTE, module.project.objects.named(Category::class.java, Category.LIBRARY))
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, module.project.objects.named(Category::class.java, Category.LIBRARY))
|
||||||
|
|||||||
+3
-3
@@ -16,12 +16,12 @@ import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
|
|||||||
interface KotlinCompileDependenciesConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
interface KotlinCompileDependenciesConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
||||||
|
|
||||||
object DefaultKotlinCompileDependenciesConfigurationInstantiator : KotlinCompileDependenciesConfigurationInstantiator {
|
object DefaultKotlinCompileDependenciesConfigurationInstantiator : KotlinCompileDependenciesConfigurationInstantiator {
|
||||||
override fun locateOrRegister(
|
override fun create(
|
||||||
module: KotlinGradleModule,
|
module: KotlinGradleModule,
|
||||||
names: FragmentNameDisambiguation,
|
names: FragmentNameDisambiguation,
|
||||||
dependencies: KotlinDependencyConfigurations
|
dependencies: KotlinDependencyConfigurations
|
||||||
): NamedDomainObjectProvider<Configuration> {
|
): Configuration {
|
||||||
return module.project.configurations.locateOrRegister(names.disambiguateName("compileDependencies")) {
|
return module.project.configurations.maybeCreate(names.disambiguateName("compileDependencies")).apply {
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
isCanBeResolved = true
|
isCanBeResolved = true
|
||||||
module.project.addExtendsFromRelation(name, dependencies.transitiveApiConfiguration.name)
|
module.project.addExtendsFromRelation(name, dependencies.transitiveApiConfiguration.name)
|
||||||
|
|||||||
+3
-5
@@ -7,12 +7,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
|
||||||
|
|
||||||
import org.gradle.api.NamedDomainObjectProvider
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.isHostSpecificKonanTargetsSet
|
import org.jetbrains.kotlin.gradle.plugin.mpp.isHostSpecificKonanTargetsSet
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
|
||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
|
|
||||||
interface KotlinHostSpecificMetadataElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
interface KotlinHostSpecificMetadataElementsConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
||||||
@@ -24,10 +22,10 @@ fun DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator(
|
|||||||
|
|
||||||
private object DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator :
|
private object DefaultKotlinHostSpecificMetadataElementsConfigurationInstantiator :
|
||||||
KotlinHostSpecificMetadataElementsConfigurationInstantiator {
|
KotlinHostSpecificMetadataElementsConfigurationInstantiator {
|
||||||
override fun locateOrRegister(
|
override fun create(
|
||||||
module: KotlinGradleModule, names: FragmentNameDisambiguation, dependencies: KotlinDependencyConfigurations
|
module: KotlinGradleModule, names: FragmentNameDisambiguation, dependencies: KotlinDependencyConfigurations
|
||||||
): NamedDomainObjectProvider<Configuration> {
|
): Configuration {
|
||||||
return module.project.configurations.locateOrRegister(names.disambiguateName("hostSpecificMetadataElements")) {
|
return module.project.configurations.maybeCreate(names.disambiguateName("hostSpecificMetadataElements")).apply {
|
||||||
isCanBeResolved = false
|
isCanBeResolved = false
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -15,12 +15,12 @@ import org.jetbrains.kotlin.gradle.utils.addExtendsFromRelation
|
|||||||
interface KotlinRuntimeDependenciesConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
interface KotlinRuntimeDependenciesConfigurationInstantiator : KotlinFragmentConfigurationInstantiator
|
||||||
|
|
||||||
object DefaultKotlinRuntimeDependenciesConfigurationInstantiator : KotlinRuntimeDependenciesConfigurationInstantiator {
|
object DefaultKotlinRuntimeDependenciesConfigurationInstantiator : KotlinRuntimeDependenciesConfigurationInstantiator {
|
||||||
override fun locateOrRegister(
|
override fun create(
|
||||||
module: KotlinGradleModule,
|
module: KotlinGradleModule,
|
||||||
names: FragmentNameDisambiguation,
|
names: FragmentNameDisambiguation,
|
||||||
dependencies: KotlinDependencyConfigurations
|
dependencies: KotlinDependencyConfigurations
|
||||||
): NamedDomainObjectProvider<Configuration> {
|
): Configuration {
|
||||||
return module.project.configurations.locateOrRegister(names.disambiguateName("runtimeDependencies")) {
|
return module.project.configurations.maybeCreate(names.disambiguateName("runtimeDependencies")).apply {
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
isCanBeResolved = true
|
isCanBeResolved = true
|
||||||
module.project.addExtendsFromRelation(name, dependencies.transitiveApiConfiguration.name)
|
module.project.addExtendsFromRelation(name, dependencies.transitiveApiConfiguration.name)
|
||||||
|
|||||||
+5
-7
@@ -5,32 +5,30 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
|
package org.jetbrains.kotlin.gradle.plugin.mpp.pm20.configuration
|
||||||
|
|
||||||
import org.gradle.api.NamedDomainObjectProvider
|
|
||||||
import org.gradle.api.artifacts.Configuration
|
import org.gradle.api.artifacts.Configuration
|
||||||
import org.gradle.api.attributes.Bundling
|
import org.gradle.api.attributes.Bundling
|
||||||
import org.gradle.api.attributes.Category
|
import org.gradle.api.attributes.Category
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.*
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinFragmentModuleCapabilityConfigurator.setModuleCapability
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinFragmentModuleCapabilityConfigurator.setModuleCapability
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.FragmentNameDisambiguation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.util.locateOrRegister
|
|
||||||
|
|
||||||
interface KotlinRuntimeElementsConfigurationFactory : KotlinFragmentConfigurationInstantiator
|
interface KotlinRuntimeElementsConfigurationFactory : KotlinFragmentConfigurationInstantiator
|
||||||
|
|
||||||
object DefaultKotlinRuntimeElementsConfigurationInstantiator : KotlinRuntimeElementsConfigurationFactory {
|
object DefaultKotlinRuntimeElementsConfigurationInstantiator : KotlinRuntimeElementsConfigurationFactory {
|
||||||
override fun locateOrRegister(
|
override fun create(
|
||||||
module: KotlinGradleModule,
|
module: KotlinGradleModule,
|
||||||
names: FragmentNameDisambiguation,
|
names: FragmentNameDisambiguation,
|
||||||
dependencies: KotlinDependencyConfigurations
|
dependencies: KotlinDependencyConfigurations
|
||||||
): NamedDomainObjectProvider<Configuration> {
|
): Configuration {
|
||||||
return module.project.configurations.locateOrRegister(names.disambiguateName("runtimeElements")) {
|
return module.project.configurations.maybeCreate(names.disambiguateName("runtimeElements")).apply {
|
||||||
isCanBeResolved = false
|
isCanBeResolved = false
|
||||||
isCanBeConsumed = false
|
isCanBeConsumed = false
|
||||||
|
|
||||||
attributes.attribute(Category.CATEGORY_ATTRIBUTE, module.project.objects.named(Category::class.java, Category.LIBRARY))
|
attributes.attribute(Category.CATEGORY_ATTRIBUTE, module.project.objects.named(Category::class.java, Category.LIBRARY))
|
||||||
attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, module.project.objects.named(Bundling::class.java, Bundling.EXTERNAL))
|
attributes.attribute(Bundling.BUNDLING_ATTRIBUTE, module.project.objects.named(Bundling::class.java, Bundling.EXTERNAL))
|
||||||
|
|
||||||
extendsFrom(dependencies.transitiveApiConfiguration.get())
|
extendsFrom(dependencies.transitiveApiConfiguration)
|
||||||
extendsFrom(dependencies.transitiveImplementationConfiguration.get())
|
extendsFrom(dependencies.transitiveImplementationConfiguration)
|
||||||
module.ifMadePublic {
|
module.ifMadePublic {
|
||||||
isCanBeConsumed = true
|
isCanBeConsumed = true
|
||||||
setModuleCapability(this, module)
|
setModuleCapability(this, module)
|
||||||
|
|||||||
Reference in New Issue
Block a user