aboutsummaryrefslogtreecommitdiff
path: root/build-logic/src/main
diff options
context:
space:
mode:
authorAdam <897017+aSemy@users.noreply.github.com>2023-05-25 23:19:27 +0100
committerGitHub <noreply@github.com>2023-05-26 00:19:27 +0200
commitf182a0add34876f74c47100e604f79f46c4ddca2 (patch)
treeab13fdef2c3ae4b807aa5defbff39bb89c3ec2b0 /build-logic/src/main
parentf55e22d5fe3f9121b7ed81d0c3f8c6a094dff45c (diff)
downloaddokka-f182a0add34876f74c47100e604f79f46c4ddca2.tar.gz
dokka-f182a0add34876f74c47100e604f79f46c4ddca2.tar.bz2
dokka-f182a0add34876f74c47100e604f79f46c4ddca2.zip
Improve copying base-frontend files between subprojects (#2970)
Diffstat (limited to 'build-logic/src/main')
-rw-r--r--build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-html-frontend-files.gradle.kts31
1 files changed, 31 insertions, 0 deletions
diff --git a/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-html-frontend-files.gradle.kts b/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-html-frontend-files.gradle.kts
new file mode 100644
index 00000000..4ccbef26
--- /dev/null
+++ b/build-logic/src/main/kotlin/org/jetbrains/conventions/dokka-html-frontend-files.gradle.kts
@@ -0,0 +1,31 @@
+package org.jetbrains.conventions
+
+import org.gradle.api.attributes.Usage.USAGE_ATTRIBUTE
+
+/**
+ * Utility for sharing the Dokka HTML frontend files between subprojects in a safe, cacheable way.
+ */
+
+plugins {
+ id("org.jetbrains.conventions.base")
+}
+
+/** Apply a distinct attribute to the incoming/outgoing configuration */
+fun AttributeContainer.dokkaHtmlFrontendFilesAttribute() =
+ attribute(USAGE_ATTRIBUTE, objects.named("org.jetbrains.dokka.html-frontend-files"))
+
+// incoming configuration
+val dokkaHtmlFrontendFiles by configurations.registering {
+ description = "Retrieve Dokka HTML frontend files from other subprojects"
+ isCanBeConsumed = false
+ isCanBeResolved = true
+ attributes { dokkaHtmlFrontendFilesAttribute() }
+}
+
+// outgoing configuration
+val dokkaHtmlFrontendFilesElements by configurations.registering {
+ description = "Provide Dokka HTML frontend files to other subprojects"
+ isCanBeConsumed = true
+ isCanBeResolved = false
+ attributes { dokkaHtmlFrontendFilesAttribute() }
+}