blob: 1e39832fc2389d25f7e2e444f97ddaebcb9a6625 (
plain)
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
plugins {
id("com.github.johnrengelman.shadow") version "7.1.2"
}
architectury {
platformSetupLoomIde()
fabric()
}
loom {
accessWidenerPath.set(project(":common").loom.accessWidenerPath)
launches {
named("client") {
property("fabric.log.level", "info")
}
}
}
/**
* @see: https://docs.gradle.org/current/userguide/migrating_from_groovy_to_kotlin_dsl.html
* */
val common: Configuration by configurations.creating
val shadowCommon: Configuration by configurations.creating // Don't use shadow from the shadow plugin because we don't want IDEA to index this.
val developmentFabric: Configuration = configurations.getByName("developmentFabric")
configurations {
compileClasspath.get().extendsFrom(configurations["common"])
runtimeClasspath.get().extendsFrom(configurations["common"])
developmentFabric.extendsFrom(configurations["common"])
}
dependencies {
modImplementation("net.fabricmc:fabric-loader:${rootProject.property("fabric_loader_version")}")
modApi("net.fabricmc.fabric-api:fabric-api:${rootProject.property("fabric_api_version")}")
// Remove the next line if you don't want to depend on the API
modApi("dev.architectury:architectury-fabric:${rootProject.property("architectury_version")}")
common(project(":common", configuration = "namedElements")) { isTransitive = false }
shadowCommon(project(":common", configuration = "transformProductionFabric")) { isTransitive = false }
common(kotlin("stdlib-jdk8"))
modRuntimeOnly("me.shedaniel:RoughlyEnoughItems-fabric:${rootProject.property("rei_version")}")
modRuntimeOnly("me.djtheredstoner:DevAuth-fabric:${rootProject.property("devauth_version")}")
modRuntimeOnly("maven.modrinth:modmenu:${rootProject.property("modmenu_version")}")
}
val javaComponent = components.getByName("java", AdhocComponentWithVariants::class)
javaComponent.withVariantsFromConfiguration(configurations["sourcesElements"]) {
skip()
}
tasks {
processResources {
inputs.property("version", project.version)
filesMatching("fabric.mod.json") {
expand("version" to project.version)
}
}
shadowJar {
exclude("architectury.common.json")
/**
* magic!
* groovy -> kotlin dsl
* [project.configurations.shadowCommon] -> listOf(project.configurations["shadowCommon"])
* */
configurations = listOf(project.configurations["shadowCommon"])
archiveClassifier.set("dev-shadow")
}
remapJar {
injectAccessWidener.set(true)
/**
* magic!
* groovy -> kotlin dsl
* shadowJar.archiveFile -> shadowJar.flatMap { it.archiveFile }
* */
inputFile.set(shadowJar.flatMap { it.archiveFile })
dependsOn(shadowJar)
/**
* affect suffix of build jar name
* if { archiveClassifier.set("fabric") }
* name will be examplemod-1.0.0-fabric.jar
*/
archiveClassifier.set("fabric")
}
jar {
archiveClassifier.set("dev")
}
sourcesJar {
val commonSources = project(":common").tasks.getByName("sourcesJar", Jar::class)
dependsOn(commonSources)
from(commonSources.archiveFile.map { zipTree(it) })
}
publishing {
publications {
create<MavenPublication>("mavenFabric") {
artifactId = "${rootProject.property("archives_base_name")}-${project.name}"
from(javaComponent)
}
}
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
repositories {
// Add repositories to publish to here.
}
}
}
|