Files
mcef-arm/neoforge/build.gradle
2025-11-04 13:49:10 +08:00

137 lines
4.1 KiB
Groovy

plugins {
id 'net.neoforged.gradle.userdev' version '7.0.+'
id 'com.matthewprenger.cursegradle' version "${cursegradle_version}"
id 'com.github.johnrengelman.shadow' version "${shadow_version}"
id 'maven-publish'
}
var mod_version = mcef_version
archivesBaseName = project.archives_base_name
version = mod_version
group = mod_packagename
java.toolchain.languageVersion = JavaLanguageVersion.of(java_version as int)
runs {
client {
workingDirectory project.file('run')
}
server {
workingDirectory project.file('run/server')
}
}
/*
Add the following to ~/.gradle/gradle.properties
systemProp.org.gradle.s3.endpoint=https://<the s3 endpoint>
MCEF_S3_PUBLISH_URL_SNAPSHOT=s3://<bucket>/repositories/snapshots
MCEF_S3_PUBLISH_URL_RELEASE=s3://<bucket>/repositories/releases
MCEF_S3_PUBLISH_ACCESS_KEY=<access key>
MCEF_S3_PUBLISH_SECRET_KEY=<secret key>
*/
publishing {
repositories {
maven {
url ((mcef_version.toString().endsWith("SNAPSHOT")) ? findProperty('MCEF_S3_PUBLISH_URL_SNAPSHOT') : findProperty('MCEF_S3_PUBLISH_URL_RELEASE'))
credentials(AwsCredentials) {
accessKey = findProperty('MCEF_S3_PUBLISH_ACCESS_KEY')
secretKey = findProperty('MCEF_S3_PUBLISH_SECRET_KEY')
}
}
}
publications {
mavenJava(MavenPublication) {
from components.java
groupId = 'com.cinemamod'
artifactId = 'mcef-neoforge'
version = mcef_version
}
}
}
sourceSets.main.resources { srcDir 'src/generated/resources' }
configurations {
shadowMc.extendsFrom minecraftLibrary
}
tasks.register('prepareWorkspace') {
}
dependencies {
implementation "net.neoforged:neoforge:${neoforge_version}"
implementation(project(':common')) {
transitive false
}
}
tasks.register('generateJava', Copy) {
from project(':common').file('src/template/java')
into "${buildDir}/generated/java"
expand 'compatibility_version': mod_compatibility_version
}
sourceSets.main.java {
srcDir "${buildDir}/generated/java"
}
compileJava.dependsOn generateJava
processResources {
filesMatching('**/*.toml') {
expand 'mod_id': mod_id,
'mod_version': mod_version,
'mod_name': mod_name,
'neoforge_version': neoforge_version,
'loader_version': loader_version,
'neoforge_dependency': 'neoforge_dependency',
'minecraft_version': minecraft_version
}
from("${project(':common').projectDir}/src/main/resources")
}
tasks.withType(JavaCompile).configureEach {
source(project(':common').sourceSets.main.allSource)
source(project(':common').sourceSets.jcef.allSource)
}
tasks.withType(JavaCompile).configureEach {
options.encoding = 'UTF-8'
}
jar {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
manifest {
attributes(['Specification-Title' : mod_name,
'Specification-Vendor' : mod_vendor,
'Specification-Version' : "1",
'Implementation-Title' : mod_name,
'Implementation-Version' : mod_version,
'Implementation-Vendor' : mod_vendor,
'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"),
'java-cef-commit' : project.parent.getCheckedOutGitCommitHash(project.parent)
])
}
from configurations.shadow.collect { it.isDirectory() ? it : zipTree(it) }
}
curseforge {
apiKey = file("${rootDir}/curseforge_api_key.txt").exists() ? file("${rootDir}/curseforge_api_key.txt").text.trim() : ''
project {
id = curse_id
releaseType = release_type
addGameVersion minecraft_version
addGameVersion 'NeoForge'
addGameVersion "Java ${java_version}"
mainArtifact(jar) {
displayName = "[NEOFORGE][${minecraft_version}] ${mod_name} ${mod_version}"
}
}
}
shadowJar {
configurations = [project.configurations.shadowMc]
archiveClassifier = ''
}