aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
blob: cc6d1d2afc5bab9318a1fe95e16a33b569bda290 (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
plugins {
    id 'org.cadixdev.licenser' version '0.6.1' apply false
}

import org.gradle.api.tasks.testing.logging.TestExceptionFormat
import org.gradle.api.tasks.testing.logging.TestLogEvent

allprojects {
    group = 'me.lucko'
    version = '1.10-SNAPSHOT'
}

subprojects {
    apply plugin: 'java'
    apply plugin: 'idea'
    apply plugin: 'java-library'
    apply plugin: 'org.cadixdev.licenser'

    ext {
        baseVersion = '1.10'
        patchVersion = determinePatchVersion()
        pluginVersion = baseVersion + '.' + patchVersion
        pluginDescription = 'spark is a performance profiling plugin/mod for Minecraft clients, servers and proxies.'

        applyExcludes = { Jar jarTask ->
            jarTask.exclude 'module-info.class'
            jarTask.exclude 'META-INF/maven/**'
            jarTask.exclude 'META-INF/proguard/**'
            jarTask.exclude 'META-INF/LICENSE'
            jarTask.exclude 'META-INF/NOTICE'
            // protobuf
            jarTask.exclude '**/*.proto'
            jarTask.exclude '**/*.proto.bin'
            // async-profiler
            jarTask.exclude 'linux-arm64/**'
            jarTask.exclude 'linux-x64/**'
            jarTask.exclude 'macos/**'
        }
    }

    tasks.withType(JavaCompile).configureEach {
        options.encoding = 'UTF-8'
        options.release = 8
    }

    tasks.withType(Test).configureEach {
        testLogging {
            events = [TestLogEvent.PASSED, TestLogEvent.FAILED, TestLogEvent.SKIPPED]
            exceptionFormat = TestExceptionFormat.FULL
            showExceptions = true
            showCauses = true
            showStackTraces = true
        }
    }

    processResources {
        duplicatesStrategy = DuplicatesStrategy.INCLUDE
    }

    license {
        header = rootProject.file('HEADER.txt')
        include '**/*.java'
    }

    repositories {
        // Fix issue with lwjgl-freetype not being found on macOS / ForgeGradle issue
        //
        // Could not resolve all files for configuration ':_compileJava_1'.
        // Could not find lwjgl-freetype-3.3.3-natives-macos-patch.jar (org.lwjgl:lwjgl-freetype:3.3.3).
        maven {
            url "https://libraries.minecraft.net"
            content {
                includeModule("org.lwjgl", "lwjgl-freetype")
            }
        }
        mavenCentral()
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
        maven { url "https://repo.lucko.me/" }
        maven { url "https://jitpack.io" }
    }

}

def determinePatchVersion() {
    def tagInfo = new ByteArrayOutputStream()
    exec {
        commandLine 'git', 'describe', '--tags'
        standardOutput = tagInfo
    }
    tagInfo = tagInfo.toString()

    return tagInfo.contains('-') ? tagInfo.split("-")[1] : 0
}