11package org.sdkotlin.buildlogic.attributes
22
33import org.gradle.api.Named
4+ import org.gradle.api.artifacts.CacheableRule
5+ import org.gradle.api.artifacts.ComponentMetadataContext
6+ import org.gradle.api.artifacts.ComponentMetadataRule
47import org.gradle.api.artifacts.Dependency
58import org.gradle.api.artifacts.ProjectDependency
69import org.gradle.api.artifacts.dsl.DependencyHandler
@@ -13,7 +16,9 @@ import org.gradle.api.attributes.LibraryElements.RESOURCES
1316import org.gradle.api.model.ObjectFactory
1417import org.gradle.kotlin.dsl.named
1518import org.sdkotlin.buildlogic.artifacts.dsl.DependencyCreationExtension
19+ import org.sdkotlin.buildlogic.attributes.ResourceAttributes.RESOURCE_ATTRIBUTE
1620import org.sdkotlin.buildlogic.attributes.ResourceAttributes.applyResourceAttributes
21+ import javax.inject.Inject
1722
1823/* *
1924 * An attribute type for resource variants.
@@ -78,3 +83,18 @@ class ResourceAttributeDependencyCreationExtension(
7883 return dependency
7984 }
8085}
86+
87+ @CacheableRule
88+ abstract class DefaultResourceAttributeRule : ComponentMetadataRule {
89+
90+ @get:Inject
91+ abstract val objects: ObjectFactory
92+
93+ override fun execute (context : ComponentMetadataContext ) {
94+ context.details.allVariants {
95+ attributes {
96+ attributes.attribute(RESOURCE_ATTRIBUTE , objects.named(" none" ))
97+ }
98+ }
99+ }
100+ }
0 commit comments