mirror of
https://github.com/tadfisher/gradle2nix.git
synced 2026-01-11 23:40:37 -05:00
50 lines
2.0 KiB
Kotlin
50 lines
2.0 KiB
Kotlin
package org.nixos.gradle2nix
|
|
|
|
import org.gradle.api.Project
|
|
import org.gradle.api.artifacts.Configuration
|
|
import org.gradle.api.artifacts.component.ModuleComponentIdentifier
|
|
import org.gradle.api.attributes.Bundling
|
|
import org.gradle.api.attributes.DocsType
|
|
import org.gradle.api.file.FileCollection
|
|
import org.nixos.gradle2nix.model.ArtifactType
|
|
|
|
object ResolveAllArtifactsApplierG8 : AbstractResolveAllArtifactsApplier() {
|
|
@Suppress("UnstableApiUsage")
|
|
override fun Project.addConfigurationArtifactResolver(
|
|
configuration: Configuration,
|
|
artifactType: ArtifactType,
|
|
): FileCollection {
|
|
val result =
|
|
configuration.incoming
|
|
.artifactView { view ->
|
|
view.isLenient = true
|
|
view.withVariantReselection()
|
|
view.componentFilter { it is ModuleComponentIdentifier }
|
|
view.attributes { attrs ->
|
|
with(attrs) {
|
|
attribute(Bundling.BUNDLING_ATTRIBUTE, objects.named(Bundling::class.java, Bundling.EXTERNAL))
|
|
attribute(
|
|
DocsType.DOCS_TYPE_ATTRIBUTE,
|
|
objects.named(
|
|
DocsType::class.java,
|
|
when (artifactType) {
|
|
ArtifactType.DOXYGEN -> DocsType.DOXYGEN
|
|
ArtifactType.JAVADOC -> DocsType.JAVADOC
|
|
ArtifactType.SAMPLES -> DocsType.SAMPLES
|
|
ArtifactType.SOURCES -> DocsType.SOURCES
|
|
ArtifactType.USERMANUAL -> DocsType.USER_MANUAL
|
|
},
|
|
),
|
|
)
|
|
}
|
|
}
|
|
}.files
|
|
|
|
configuration.incoming.afterResolve {
|
|
result.files.count()
|
|
}
|
|
|
|
return result
|
|
}
|
|
}
|