241 lines
5.8 KiB
Groovy
241 lines
5.8 KiB
Groovy
buildscript {
|
|
dependencies {
|
|
classpath 'org.kohsuke:github-api:1.114'
|
|
}
|
|
|
|
repositories {
|
|
gradlePluginPortal()
|
|
}
|
|
}
|
|
|
|
apply from: "gradle/bclib-common.gradle"
|
|
|
|
repositories {
|
|
maven { url "https://maven.dblsaiko.net/" }
|
|
maven { url "https://maven.fabricmc.net/" }
|
|
maven { url "https://maven.shedaniel.me/" }
|
|
maven { url 'https://maven.blamejared.com' }
|
|
maven { url 'https://jitpack.io' }
|
|
maven { url 'https://maven.terraformersmc.com/releases' }
|
|
}
|
|
|
|
archivesBaseName = project.archives_base_name
|
|
version = project.mod_version
|
|
|
|
loom {
|
|
accessWidenerPath = file("src/main/resources/bclib.accesswidener")
|
|
}
|
|
|
|
moduleDependencies(project, ["together-v1"])
|
|
repositories {
|
|
maven { url 'https://maven.terraformersmc.com/releases' }
|
|
}
|
|
|
|
dependencies {
|
|
modCompileOnly "com.terraformersmc:modmenu:${project.modmenu_version}"
|
|
}
|
|
|
|
allprojects {
|
|
group = project.maven_group
|
|
apply plugin: "java-library"
|
|
apply plugin: "fabric-loom"
|
|
|
|
tasks.withType(GenerateModuleMetadata) {
|
|
enabled = false
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.encoding = "UTF-8"
|
|
it.options.release = 17
|
|
}
|
|
|
|
java {
|
|
// Must be added before the split source sets are setup.
|
|
withSourcesJar()
|
|
}
|
|
|
|
allprojects.each { p ->
|
|
loom.mods.register(p.name) {
|
|
sourceSet p.sourceSets.main
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
mappings loom.officialMojangMappings()
|
|
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
|
|
modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}"
|
|
}
|
|
|
|
loom {
|
|
shareRemapCaches = true
|
|
}
|
|
|
|
tasks.withType(ProcessResources).configureEach {
|
|
inputs.property "version", project.version
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand "version": project.version
|
|
}
|
|
}
|
|
|
|
tasks.withType(AbstractArchiveTask) {
|
|
preserveFileTimestamps = false
|
|
reproducibleFileOrder = true
|
|
}
|
|
|
|
jar {
|
|
from "../LICENSE"
|
|
}
|
|
}
|
|
|
|
subprojects {
|
|
javadoc.enabled = false
|
|
}
|
|
|
|
javadoc {
|
|
options {
|
|
source = "17"
|
|
encoding = "UTF-8"
|
|
charSet = "UTF-8"
|
|
memberLevel = JavadocMemberLevel.PACKAGE
|
|
addStringOption("Xdoclint:none", "-quiet")
|
|
}
|
|
|
|
allprojects.each {
|
|
if (it.name == "deprecated") return
|
|
|
|
source(it.sourceSets.main.allJava.srcDirs)
|
|
}
|
|
|
|
classpath = files(sourceSets.main.compileClasspath)
|
|
include("**")
|
|
failOnError false
|
|
}
|
|
|
|
task javadocJar(type: Jar) {
|
|
dependsOn javadoc
|
|
from javadoc.destinationDir
|
|
//Set as `fatjavadoc` to prevent an ide form trying to use this javadoc, over using the modules javadoc
|
|
archiveClassifier = "fatjavadoc"
|
|
}
|
|
|
|
build.dependsOn javadocJar
|
|
|
|
loom {}
|
|
|
|
processResources {
|
|
println "Version: ${project.mod_version}"
|
|
inputs.property "version", project.mod_version
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand "version": project.mod_version
|
|
}
|
|
}
|
|
|
|
subprojects.each {
|
|
remapJar.dependsOn("${it.path}:remapJar")
|
|
}
|
|
|
|
|
|
dependencies {
|
|
afterEvaluate {
|
|
subprojects.each {
|
|
api project(path: "${it.path}", configuration: "namedElements")
|
|
}
|
|
}
|
|
}
|
|
|
|
remapJar {
|
|
afterEvaluate {
|
|
subprojects.each {
|
|
nestedJars.from project("${it.path}").tasks.getByName("remapJar")
|
|
}
|
|
}
|
|
}
|
|
|
|
// ensure that the encoding is set to UTF-8, no matter what the system default is
|
|
// this fixes some edge cases with special characters not displaying correctly
|
|
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
|
tasks.withType(JavaCompile) {
|
|
options.encoding = "UTF-8"
|
|
it.options.release = 17
|
|
}
|
|
|
|
javadoc {
|
|
options.tags = ["reason"]
|
|
options.stylesheetFile = new File(projectDir, "javadoc.css");
|
|
}
|
|
|
|
jar {
|
|
from "LICENSE"
|
|
}
|
|
|
|
artifacts {
|
|
archives sourcesJar
|
|
archives javadocJar
|
|
}
|
|
|
|
def env = System.getenv()
|
|
|
|
import org.kohsuke.github.GHReleaseBuilder
|
|
import org.kohsuke.github.GitHub
|
|
|
|
task release(dependsOn: [remapJar, sourcesJar, javadocJar]) {
|
|
onlyIf {
|
|
env.GITHUB_TOKEN
|
|
}
|
|
|
|
doLast {
|
|
def github = GitHub.connectUsingOAuth(env.GITHUB_TOKEN as String)
|
|
def repository = github.getRepository("quiqueck/BCLib")
|
|
|
|
def releaseBuilder = new GHReleaseBuilder(repository, version as String)
|
|
releaseBuilder.name("${archivesBaseName}-${version}")
|
|
releaseBuilder.body("A changelog can be found at https://github.com/quiqueck/BCLib/commits")
|
|
releaseBuilder.commitish("main")
|
|
|
|
def ghRelease = releaseBuilder.create()
|
|
ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}.jar"), "application/java-archive");
|
|
ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}-sources.jar"), "application/java-archive");
|
|
ghRelease.uploadAsset(file("${project.buildDir}/libs/${archivesBaseName}-${version}-javadoc.jar"), "application/java-archive");
|
|
}
|
|
}
|
|
|
|
// configure the maven publication
|
|
publishing {
|
|
publications {
|
|
gpr(MavenPublication) {
|
|
artifactId archivesBaseName
|
|
artifact(remapJar) {
|
|
builtBy remapJar
|
|
}
|
|
artifact(sourcesJar) {
|
|
builtBy remapSourcesJar
|
|
}
|
|
}
|
|
}
|
|
|
|
// select the repositories you want to publish to
|
|
repositories {
|
|
maven {
|
|
name = "GitHubPackages"
|
|
url = uri("https://maven.pkg.github.com/quiqueck/bclib")
|
|
credentials {
|
|
username = env.GITHUB_USER
|
|
password = env.GITHUB_TOKEN
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
configurations {
|
|
dev {
|
|
canBeResolved = false
|
|
canBeConsumed = true
|
|
}
|
|
}
|
|
|
|
artifacts {
|
|
dev jar
|
|
}
|