-
Notifications
You must be signed in to change notification settings - Fork 421
/
Copy pathbuild.gradle.kts
93 lines (75 loc) · 3.04 KB
/
build.gradle.kts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
/*
* Copyright 2014-2024 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/
import dokkabuild.overridePublicationArtifactId
import dokkabuild.utils.downloadKotlinStdlibJvmSources
import dokkabuild.utils.systemProperty
import org.gradle.api.tasks.PathSensitivity.RELATIVE
plugins {
id("dokkabuild.kotlin-jvm")
id("dokkabuild.publish-jvm")
id("dokkabuild.setup-html-frontend-files")
id("dokkabuild.test-k2")
}
overridePublicationArtifactId("dokka-base")
dependencies {
compileOnly(projects.dokkaSubprojects.dokkaCore)
compileOnly(projects.dokkaSubprojects.analysisKotlinApi)
implementation(projects.dokkaSubprojects.analysisMarkdownJb)
// Other
implementation(kotlin("reflect"))
implementation(libs.kotlinx.coroutines.core)
implementation(libs.jsoup)
implementation(libs.freemarker)
implementation(libs.kotlinx.html)
implementation(libs.jackson.kotlin)
constraints {
implementation(libs.jackson.databind) {
because("CVE-2022-42003")
}
}
// Test only
testImplementation(kotlin("test"))
testImplementation(libs.junit.jupiterParams)
symbolsTestImplementation(project(path = ":dokka-subprojects:analysis-kotlin-symbols", configuration = "shadow"))
descriptorsTestImplementation(project(path = ":dokka-subprojects:analysis-kotlin-descriptors", configuration = "shadow"))
testImplementation(projects.dokkaSubprojects.pluginBaseTestUtils)
testImplementation(projects.dokkaSubprojects.coreContentMatcherTestUtils)
testImplementation(projects.dokkaSubprojects.dokkaTestApi)
testImplementation(projects.dokkaSubprojects.analysisKotlinApi)
dokkaHtmlFrontendFiles(projects.dokkaSubprojects.pluginBaseFrontend) {
because("fetch frontend files from subproject :plugin-base-frontend")
}
}
// access the frontend files via the dependency on :plugins:base:frontend
val dokkaHtmlFrontendFiles: Provider<FileCollection> =
configurations.dokkaHtmlFrontendFiles.map { frontendFiles ->
frontendFiles.incoming.artifacts.artifactFiles
}
val prepareDokkaHtmlFrontendFiles by tasks.registering(Sync::class) {
description = "copy Dokka Base frontend files into the resources directory"
from(dokkaHtmlFrontendFiles) {
include("*.js")
into("dokka/scripts")
}
from(dokkaHtmlFrontendFiles) {
include("*.css")
into("dokka/styles")
}
into(layout.buildDirectory.dir("generated/src/main/resources"))
outputs.cacheIf("always cache: avoid fetching files from another subproject") { true }
}
sourceSets.main {
resources.srcDir(prepareDokkaHtmlFrontendFiles.map { it.destinationDir })
}
tasks.test {
maxHeapSize = "4G"
}
//region Download and unpack kotlin-stdlib, so EnumTemplatesTest can test synthetic enum functions.
val kotlinStdlibSourcesDir = downloadKotlinStdlibJvmSources(project)
tasks.withType<Test>().configureEach {
systemProperty
.inputDirectory("kotlinStdlibSourcesDir", kotlinStdlibSourcesDir)
.withPathSensitivity(RELATIVE)
}
//endregion