aboutsummaryrefslogtreecommitdiff
path: root/build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts
diff options
context:
space:
mode:
authorIgnat Beresnev <ignat.beresnev@jetbrains.com>2023-11-10 11:46:54 +0100
committerGitHub <noreply@github.com>2023-11-10 11:46:54 +0100
commit8e5c63d035ef44a269b8c43430f43f5c8eebfb63 (patch)
tree1b915207b2b9f61951ddbf0ff2e687efd053d555 /build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts
parenta44efd4ba0c2e4ab921ff75e0f53fc9335aa79db (diff)
downloaddokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.gz
dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.tar.bz2
dokka-8e5c63d035ef44a269b8c43430f43f5c8eebfb63.zip
Restructure the project to utilize included builds (#3174)
* Refactor and simplify artifact publishing * Update Gradle to 8.4 * Refactor and simplify convention plugins and build scripts Fixes #3132 --------- Co-authored-by: Adam <897017+aSemy@users.noreply.github.com> Co-authored-by: Oleg Yukhnevich <whyoleg@gmail.com>
Diffstat (limited to 'build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts')
-rw-r--r--build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts33
1 files changed, 33 insertions, 0 deletions
diff --git a/build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts b/build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts
new file mode 100644
index 00000000..c172c4e3
--- /dev/null
+++ b/build-logic/src/main/kotlin/dokkabuild.setup-html-frontend-files.gradle.kts
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2014-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
+ */
+
+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("dokkabuild.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() }
+}