summaryrefslogtreecommitdiff
path: root/build.gradle
blob: 0f30ca88bd8450ec2ecd5a97066410011d8181e1 (plain) (blame)
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
plugins {
   id 'java'
   id 'eclipse'
   alias libs.plugins.forgeGradle
   alias libs.plugins.gitVersion
   alias libs.plugins.checkerFramework
}

version          = gitVersion()
group            = 'ftbsc'
archivesBaseName = 'bscv'

def shortVersion = version.split('-')[0].replaceAll(".dirty", "") // necessary when there are no extra commits on tags, and thus no dash

project.ext {
   deployJarDo          = getProjectProperty("deployJar.do", "false")
   deployJarTargetDir   = getProjectProperty("deployJar.targetDir", ".")
}

def getProjectProperty(String property, String fallback) { //allows for custom gradle.properties while retaining default fallback values
   return (project.hasProperty(property)) ? project.property(property) : fallback
}

java.toolchain.languageVersion = JavaLanguageVersion.of(8)

println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + '(' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch'))

minecraft {
   mappings channel: 'official', version: libs.versions.minecraft.get()
   accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg')
   runs {
      client {
         workingDirectory project.file('run')
         property 'forge.logging.markers', 'REGISTRIES'
         property 'forge.logging.console.level', 'debug'
         mods {
            bscv.source sourceSets.main
         }
      }
      data {
         workingDirectory project.file('run')
         property 'forge.logging.markers', 'REGISTRIES'
         property 'forge.logging.console.level', 'debug'
         args '--mod', 'bsvc', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
         mods {
            bscv.source sourceSets.main
         }
      }
   }
}

sourceSets.main.resources { srcDir 'src/generated/resources' }

repositories {
   mavenCentral()
   maven { url = 'https://maven.fantabos.co' }
}

dependencies {
   minecraft libs.minecraftForge
   implementation libs.lillero
   implementation libs.lilleroProcessor
   implementation libs.autoServiceAnnotations
   annotationProcessor libs.lilleroProcessor
   annotationProcessor libs.autoService
}

compileJava { //mappings for lillero-processor
   options.compilerArgs << '-AmappingsFile=https://data.fantabos.co/output.tsrg'
}

jar {
   archiveFileName = "${jar.archiveBaseName.get()}-${shortVersion}.${jar.archiveExtension.get()}"
   manifest {
      attributes([
         "Specification-Title": "bscv",
         "Specification-Vendor": "ftbsc",
         "Specification-Version": "1", // We are version 1 of ourselves
         "Implementation-Title": project.name,
         "Implementation-Version": project.version,
         "Implementation-Vendor" :"ftbsc",
         "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
      ])
   }
}

jar.finalizedBy('reobfJar')

//copy jar from build/libs to the forge mod folder
tasks.register('deployJar', Copy) {
   if (!project.ext.deployJarDo.toBoolean()) return
   from project.jar
   into project.ext.deployJarTargetDir
}

build {
   finalizedBy deployJar
}