Skip to content

Commit e443ed9

Browse files
committed
build: More templating and dokka rework
1 parent 19f25a7 commit e443ed9

26 files changed

+111
-58
lines changed

build-src/build.gradle.kts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,7 @@ dependencies {
2626
api("org.ow2.asm:asm-analysis:9.7")
2727
api("com.gradleup.shadow:shadow-gradle-plugin:9.0.0-beta12")
2828
api("org.jetbrains.dokka:dokka-gradle-plugin:1.9.20")
29-
api("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:2.1.20")
29+
val kotlinVersion = "2.0.0"
30+
api("org.jetbrains.kotlin.jvm:org.jetbrains.kotlin.jvm.gradle.plugin:$kotlinVersion")
31+
api("org.jetbrains.kotlin.plugin.lombok:org.jetbrains.kotlin.plugin.lombok.gradle.plugin:$kotlinVersion")
3032
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import org.gradle.api.Project
2+
import org.gradle.kotlin.dsl.the
3+
import xyz.wagyourtail.unimined.api.minecraft.patch.fabric.FabricLikeApiExtension
4+
import javax.inject.Inject
5+
6+
abstract class FabricUtils(
7+
val fabricVersion: String
8+
) {
9+
@get:Inject
10+
abstract val project: Project
11+
val fabricApi: FabricLikeApiExtension get() = project.the()
12+
fun impl(name: String) {
13+
project.dependencies.add("modImplementation", fabricApi.fabricModule(name, fabricVersion))
14+
}
15+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
2+
plugins {
3+
id("moulconfig.base")
4+
id("org.jetbrains.dokka")
5+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask
2+
import java.net.URL
3+
4+
plugins {
5+
id("moulconfig.dokka.base")
6+
}
7+
afterEvaluate {
8+
tasks.withType(AbstractDokkaLeafTask::class).configureEach {
9+
dokkaSourceSets.configureEach {
10+
println("Configuring $this")
11+
sourceLink {
12+
localDirectory.set(project.file("src/"))
13+
remoteUrl.set(URL("https://github.com/NotEnoughUpdates/MoulConfig/blob/${Version.hash}/${project.name}/src"))
14+
remoteLineSuffix.set("#L")
15+
}
16+
}
17+
}
18+
}
19+
20+
dependencies {
21+
"dokkaPlugin"("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.20")
22+
}

build-src/src/main/kotlin/moulconfig.fabric.gradle.kts

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ plugins {
88
id("moulconfig.leaf")
99
}
1010

11+
val fabricVersion = property("moulconfig.fabric") as String
12+
val aF = project.file("src/main/resources/moulconfig.accesswidener")
13+
val hasAW = aF.exists()
1114
the<UniminedExtension>().minecraft {
1215
version(property("moulconfig.minecraft") as String)
1316
mappings {
@@ -17,8 +20,7 @@ the<UniminedExtension>().minecraft {
1720

1821
fabric {
1922
loader("0.16.9")
20-
val aF = project.file("src/main/resources/moulconfig.accesswidener")
21-
if (aF.exists())
23+
if (hasAW)
2224
accessWidener(aF)
2325
}
2426
runs {
@@ -30,6 +32,9 @@ the<UniminedExtension>().minecraft {
3032
}
3133
}
3234

35+
val fabricDeps = extensions.create("fabricDeps", FabricUtils::class, fabricVersion)
36+
37+
fabricDeps.impl("fabric-resource-loader-v0")
3338

3439
val remapJar by tasks.named("remapJar", RemapJarTask::class) {
3540
asJar {
@@ -45,6 +50,28 @@ tasks.named("jar", Jar::class) {
4550
dependsOn(tasks.processResources)
4651
}
4752

53+
tasks.processResources {
54+
from(project(":modern").file("templates/resources")) {
55+
filesMatching("fabric.mod.json") {
56+
filter {
57+
if (!it.contains("accessWidener") || hasAW)
58+
it
59+
else
60+
""
61+
}
62+
}
63+
}
64+
}
65+
66+
val generateFilteredSource = tasks.register("generateFilteredSource", Copy::class) {
67+
from(project(":modern").file("templates/kotlin"))
68+
rootSpec.into(layout.buildDirectory.dir("sharedModernSource"))
69+
}
70+
sourceSets.main {
71+
kotlin {
72+
srcDir(files(generateFilteredSource))
73+
}
74+
}
4875

4976
tasks.withType(Jar::class) {
5077
this.filesMatching(listOf("fabric.mod.json")) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
plugins {
22
id("org.jetbrains.kotlin.jvm")
3+
id("org.jetbrains.kotlin.plugin.lombok")
34
}

build-src/src/main/kotlin/moulconfig.leaf.gradle.kts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
2-
import xyz.wagyourtail.unimined.api.uniminedMaybe
2+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
33
import xyz.wagyourtail.unimined.util.sourceSets
44

55
plugins {
66
`maven-publish`
77
idea
88
id("moulconfig.base")
9+
id("xyz.wagyourtail.unimined")
910
id("com.gradleup.shadow")
1011
}
1112

@@ -30,7 +31,9 @@ val sourcesJar by tasks.creating(Jar::class) {
3031
from(project(":common").the<SourceSetContainer>().getByName("main").allSource)
3132
archiveClassifier.set("sources")
3233
}
33-
34+
tasks.withType<KotlinCompile> {
35+
compilerOptions.freeCompilerArgs.add("-Xmetadata-version=2.0.0")
36+
}
3437
configure<PublishingExtension> {
3538
publications {
3639
defaultMaven {

build.gradle.kts

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,19 @@
1-
import org.jetbrains.dokka.gradle.AbstractDokkaLeafTask
2-
import java.net.URL
31

42
plugins {
5-
kotlin("jvm") version (libs.versions.kotlin.get()) apply false
6-
alias(libs.plugins.dokka)
3+
base
4+
id("moulconfig.base")
75
alias(libs.plugins.mkdocs)
6+
id("moulconfig.dokka.base")
87
}
98

10-
allprojects {
11-
afterEvaluate {
12-
tasks.withType(AbstractDokkaLeafTask::class).configureEach {
13-
dokkaSourceSets.configureEach {
14-
println("Configuring $this")
15-
sourceLink {
16-
localDirectory.set(project.file("src/"))
17-
// remoteUrl.set(URL("https://github.com/NotEnoughUpdates/MoulConfig/blob/${Version.hash}/${project.name}/src"))
18-
remoteLineSuffix.set("#L")
19-
}
20-
}
21-
}
22-
}
23-
}
249
mkdocs {
2510
python {
2611
pip("mkdocs-zettelkasten:0.1.9")
2712
}
2813
strict = false
2914
}
3015

31-
tasks.register("compileAllDocs", Copy::class) {
16+
val compileAllDocs = tasks.register("compileAllDocs", Copy::class) {
3217
dependsOn(tasks.mkdocsBuild)
3318
dependsOn(tasks.dokkaHtmlMultiModule)
3419
destinationDir = layout.buildDirectory.dir("allDocs").get().asFile
@@ -38,9 +23,11 @@ tasks.register("compileAllDocs", Copy::class) {
3823
}
3924
}
4025

41-
subprojects {
42-
if (plugins.hasPlugin("org.jetbrains.dokka"))
43-
dependencies {
44-
"dokkaPlugin"("org.jetbrains.dokka:kotlin-as-java-plugin:1.9.10")
45-
}
46-
}
26+
val docJar = tasks.register("docJar", Zip::class) {
27+
from(compileAllDocs)
28+
archiveClassifier.set("docs")
29+
}
30+
31+
val docConfig = configurations.create("documentation")
32+
artifacts.add(docConfig.name, docJar)
33+
tasks.assemble { dependsOn(docJar) }

common/build.gradle.kts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
plugins {
22
java
3-
alias(libs.plugins.kotlin.jvm)
4-
alias(libs.plugins.kotlin.lombok)
5-
alias(libs.plugins.dokka)
3+
id("moulconfig.kotlin")
4+
id("moulconfig.dokka")
65
`maven-publish`
76
id("moulconfig.base")
87
}

gradle/libs.versions.toml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,10 @@
22
mc_legacy = "1.8.9"
33
mcp = "22-1.8.9"
44
forge_loader = "11.15.1.2318-1.8.9"
5-
fabric_api = "0.111.0+1.21.4"
6-
kotlin = "2.0.0"
7-
dokka = "1.9.20"
8-
unimined = "1.2.14"
95
mkdocs = "2.4.0"
106

117
[libraries]
128

139
[plugins]
1410
mkdocs = { id = "ru.vyarus.mkdocs", version.ref = "mkdocs" }
15-
kotlin_jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
16-
kotlin_lombok = { id = "org.jetbrains.kotlin.plugin.lombok", version.ref = "kotlin" }
17-
dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" }
18-
unimined = { id = "xyz.wagyourtail.unimined", version.ref = "unimined" }
1911

0 commit comments

Comments
 (0)