Convert Gradle to Kotlin script (#724)

* Use double quotations instead of single in gradle

* Use register task syntax

* Use parenthesis instead of implied correlation

* Convert settings.gradle to kts

* Convert legacy-launcher build.gradle to kts

* Convert main build.gradle to kts

I dropped jitpack from plugins as upstream gettext
 has all patches in. Also, because ben-manes versions does too.

* Organize build.gradle.kts

* Update CHANGELOG.md
This commit is contained in:
Doomsdayrs 2023-02-21 05:28:56 -05:00 committed by GitHub
parent 036031222b
commit 42b1733d02
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 361 additions and 333 deletions

View file

@ -21,3 +21,4 @@ This changelog only contains the changes that are unreleased. For changes for in
- Add `xrandr` as a dependency for RPM [#691] - Add `xrandr` as a dependency for RPM [#691]
- Update packaging scripts - Update packaging scripts
- Implement view model for VanillaPacksTab [#717] - Implement view model for VanillaPacksTab [#717]
- Convert Gradle Groovy scripts to Kotlin scripts [#724]

View file

@ -1,316 +0,0 @@
import java.text.SimpleDateFormat
import java.util.stream.Collectors
buildscript {
repositories {
mavenCentral()
maven {
url 'https://jitpack.io'
content {
includeGroup "com.github.RyanTheAllmighty.gettext"
}
}
}
dependencies {
classpath 'com.github.RyanTheAllmighty.gettext:gettext-gradle-plugin:aab5c30bf8'
}
}
plugins {
id 'java'
id 'application'
id 'org.cadixdev.licenser' version '0.6.1'
id 'com.adarshr.test-logger' version '3.2.0'
id 'edu.sc.seis.macAppBundle' version '2.3.0'
id 'edu.sc.seis.launch4j' version '2.5.3'
id 'de.undercouch.download' version '5.1.0'
id 'com.github.johnrengelman.shadow' version '7.1.2'
id 'com.github.ben-manes.versions' version '0.42.0'
id "org.jetbrains.kotlin.jvm" version "1.8.0"
id 'com.apollographql.apollo' version '2.5.14'
}
apply plugin: 'org.mini2Dx.gettext'
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
group = 'com.atlauncher'
version = rootProject.file('src/main/resources/version').text.trim().replace('.Beta', '')
repositories {
mavenCentral()
gradlePluginPortal()
maven {
url 'https://libraries.minecraft.net'
}
maven {
url 'https://jitpack.io'
content {
includeGroup "com.github.RyanTheAllmighty.gettext"
includeGroup "com.github.Vatuu"
}
}
}
dependencies {
implementation 'net.java.dev.jna:jna:5.11.0'
implementation 'net.java.dev.jna:jna-platform:5.11.0'
implementation 'com.google.code.gson:gson:2.9.0'
implementation 'com.google.guava:guava:31.1-jre'
implementation 'org.tukaani:xz:1.9'
implementation 'com.mojang:authlib:1.5.21'
implementation 'net.iharder:base64:2.3.9'
implementation 'com.github.Vatuu:discord-rpc:1.6.2'
implementation 'net.sf.jopt-simple:jopt-simple:5.0.4'
implementation 'org.zeroturnaround:zt-zip:1.15'
implementation 'com.squareup.okhttp3:okhttp:4.9.3'
implementation 'com.squareup.okhttp3:okhttp-tls:4.9.3'
implementation 'net.mikehardy:google-analytics-java:2.0.11'
implementation 'io.sentry:sentry:6.1.4'
implementation 'com.github.RyanTheAllmighty.gettext:gettext-lib:88ae68d897'
implementation 'org.apache.logging.log4j:log4j-api:2.17.2'
implementation 'org.apache.logging.log4j:log4j-core:2.17.2'
implementation 'com.sangupta:murmur:1.0.0'
implementation 'org.apache.commons:commons-lang3:3.12.0'
implementation 'org.apache.commons:commons-text:1.10.0'
implementation 'com.formdev:flatlaf:2.3'
implementation 'com.formdev:flatlaf-extras:2.3'
implementation 'com.github.oshi:oshi-core:6.1.6'
implementation 'net.freeutils:jlhttp:2.6'
implementation 'joda-time:joda-time:2.10.14'
implementation 'org.apache.commons:commons-compress:1.21'
implementation 'org.commonmark:commonmark:0.19.0'
implementation 'com.github.hypfvieh:dbus-java:3.3.1'
implementation 'com.apollographql.apollo:apollo-runtime:2.5.14'
implementation 'com.apollographql.apollo:apollo-http-cache:2.5.14'
implementation 'com.apollographql.apollo:apollo-coroutines-support:2.5.14'
// Kotlin
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.6.4")
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:4.6.1'
testImplementation 'org.mockito:mockito-inline:4.6.1'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testImplementation 'org.assertj:assertj-swing-junit:3.17.1'
testImplementation 'org.mock-server:mockserver-netty:5.13.2'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.8.2'
}
application {
mainClass = 'com.atlauncher.App'
applicationDefaultJvmArgs = [
"-Djna.nosys=true",
"-Djava.net.preferIPv4Stack=true",
"-Dawt.useSystemAAFontSettings=on",
"-Dswing.aatext=true"
]
}
tasks.named('test') {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
testlogger {
theme 'mocha'
}
}
jar {
manifest {
attributes(
'SplashScreen-Image': '/assets/image/splash-screen.png',
'Implementation-Title': project.name,
'Implementation-Version': archiveVersion,
'Implementation-Vender': 'ATLauncher',
'Main-Class': 'com.atlauncher.App',
'Multi-Release': 'true'
)
}
}
apollo {
customTypeMapping = [
"ID" : "java.lang.String",
"DateTime" : "java.util.Date"
]
packageName = "com.atlauncher.graphql"
}
gettext {
translations {
srcDir = 'src'
include = 'main/java/com/atlauncher/**/*.java'
excludes = [
'main/java/com/atlauncher/adapter/**/*.java',
'main/java/com/atlauncher/annot/**/*.java',
'main/java/com/atlauncher/collection/**/*.java',
'main/java/com/atlauncher/evnt/**/*.java',
'main/java/com/atlauncher/exceptions/**/*.java',
'main/java/com/atlauncher/interfaces/**/*.java',
'main/java/com/atlauncher/listener/**/*.java',
'main/java/com/atlauncher/utils/**/*.java'
]
commentFormat = ' #. '
outputFilename = 'translations.pot'
}
}
license {
header = project.file('LICENSEHEADER')
include '**/*.java'
exclude 'io/github/**/*.java'
exclude 'net/minecraft/**/*.java'
exclude 'com/atlauncher/graphql/**/*.java'
exclude 'com/atlauncher/gui/layouts/WrapLayout.java'
newLine = false
properties {
year = currentYear()
}
}
shadowJar {
classifier = null
minimize {
exclude(dependency('org.apache.logging.log4j:.*:.*'))
exclude(dependency('com.formdev:.*:.*'))
exclude(dependency('com.github.jnr:.*:.*'))
exclude(dependency('com.github.hypfvieh:.*:.*'))
exclude(dependency('org.apache.commons:commons-compress:.*'))
}
// these are included by dbus-java which is only used on Linux
exclude("jni/x86_64-Windows/")
exclude("jni/x86_64-SunOS/")
exclude("jni/x86_64-OpenBSD/")
exclude("jni/x86_64-FreeBSD/")
exclude("jni/x86_64-DragonFlyBSD/")
exclude("jni/sparcv9-SunOS/")
exclude("jni/ppc-AIX/")
exclude("jni/ppc64-AIX/")
exclude("jni/i386-Windows/")
exclude("jni/i386-SunOS/")
exclude("jni/Darwin/")
classifier = ''
}
macAppBundle {
mainClassName = 'com.atlauncher.App'
appName = 'ATLauncher'
appStyle = 'universalJavaApplicationStub'
runtimeConfigurationName = 'shadow'
jarTask = 'shadowJar'
icon = 'src/main/resources/assets/image/icon.icns'
javaProperties.put('user.dir', '$APP_ROOT/Contents/Java')
javaProperties.put('apple.laf.useScreenMenuBar', 'true')
javaExtras.put("-Djna.nosys", "true")
javaExtras.put("-Djava.net.preferIPv4Stack", "true")
javaExtras.put("-Dawt.useSystemAAFontSettings", "on")
javaExtras.put("-Dswing.aatext", "true")
bundleExtras.put("JVMVersion", project.targetCompatibility.toString() + "+")
}
copyToResourcesJava {
rename("ATLauncher-${project.version}.jar", "ATLauncher.jar")
}
def currentYear() {
def df = new SimpleDateFormat("yyyy")
df.setTimeZone(TimeZone.getTimeZone("UTC"))
return df.format(new Date())
}
launch4j {
outfile = "ATLauncher-${project.version}.exe"
jreMinVersion = "${project.targetCompatibility.toString()}"
mainClassName = 'com.atlauncher.App'
icon = "${projectDir}/src/main/resources/assets/image/icon.ico"
version = "${project.version}"
textVersion = "${project.version}"
copyright = "2013-${currentYear()} ${project.name}"
companyName = "${project.name}"
bundledJrePath = "jre/;%JAVA_HOME%;%PATH%"
jvmOptions = [
"-Djna.nosys=true",
"-Djava.net.preferIPv4Stack=true",
"-Dawt.useSystemAAFontSettings=on",
"-Dswing.aatext=true"
]
}
artifacts {
archives shadowJar
archives file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.exe').replace('libs', 'launch4j'))
archives file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.zip').replace('libs', 'distributions'))
}
test {
if (JavaVersion.current().isJava9Compatible()) {
jvmArgs '--add-opens=java.base/sun.security.x509=ALL-UNNAMED'
}
}
task copyArtifacts(type: Copy) {
dependsOn build
from shadowJar
from file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.exe').replace('libs', 'launch4j'))
from file(project.tasks.jar.getArchivePath().getPath().replace('.jar', '.zip').replace('libs', 'distributions'))
into "${projectDir}/dist"
}
task downloadNewerUniversalJavaApplicationStub(type: Download) {
description 'Downloads newer universalJavaApplicationStub'
src 'https://raw.githubusercontent.com/tofi86/universalJavaApplicationStub/2dbbf92b35e61194266c985c8bc6b411053a1b4a/src/universalJavaApplicationStub'
dest file("$buildDir/macApp/${project.name}.app/Contents/MacOS/universalJavaApplicationStub")
overwrite true
}
task createTestLauncherDir {
project.file('testLauncher/dev').mkdirs()
}
task createMacApp(type: Zip) {
dependsOn createApp, shadowJar
from("$buildDir/macApp") {
include "${project.name}.app/**"
exclude "${project.name}.app/Contents/MacOS"
}
from("$buildDir/macApp") {
include "${project.name}.app/Contents/MacOS/**"
fileMode 0777
}
archiveName = "${project.name}-${project.version}.zip"
}
copyArtifacts.finalizedBy {
println 'ATLauncher has been built. Distribution files are located in the dist directory.'
}
clean.doFirst {
delete "${projectDir}/dist"
}
project.afterEvaluate {
tasks.check {
dependsOn -= tasks.find {
it.name.equals("checkLicenses")
}
}
}
def shouldIgnoreUpdate = { String version -> return ['ALPHA', 'BETA', 'RC', '-M'].any { it -> version.toUpperCase().contains(it) }}
tasks.named("dependencyUpdates").configure {
rejectVersionIf {
shouldIgnoreUpdate(it.candidate.version)
}
}
build.finalizedBy copyArtifacts
shadowJar.dependsOn jar
build.dependsOn createExe, createMacApp
createApp.finalizedBy downloadNewerUniversalJavaApplicationStub

338
build.gradle.kts Normal file
View file

@ -0,0 +1,338 @@
import org.gradle.api.internal.FactoryNamedDomainObjectContainer
import org.jetbrains.kotlin.de.undercouch.gradle.tasks.download.Download
import org.mini2Dx.gettext.plugin.GetTextSource
import java.text.SimpleDateFormat
import java.util.*
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.mini2Dx:gettext-gradle-plugin:1.11.0")
}
}
plugins {
java
application
id("org.cadixdev.licenser") version "0.6.1"
id("com.adarshr.test-logger") version "3.2.0"
id("edu.sc.seis.macAppBundle") version "2.3.0"
id("edu.sc.seis.launch4j") version "2.5.3"
id("de.undercouch.download") version "5.1.0"
id("com.github.johnrengelman.shadow") version "7.1.2"
id("com.github.ben-manes.versions") version "0.45.0"
id("org.jetbrains.kotlin.jvm") version "1.8.0"
id("com.apollographql.apollo") version "2.5.14"
}
apply(plugin = "org.mini2Dx.gettext")
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
group = "com.atlauncher"
version = rootProject.file("src/main/resources/version").readText().trim().replace(".Beta", "")
repositories {
mavenCentral()
gradlePluginPortal()
maven("https://libraries.minecraft.net")
maven("https://jitpack.io") {
content {
includeGroup("com.github.Vatuu")
}
}
}
dependencies {
implementation("net.java.dev.jna:jna:5.11.0")
implementation("net.java.dev.jna:jna-platform:5.11.0")
implementation("com.google.code.gson:gson:2.9.0")
implementation("com.google.guava:guava:31.1-jre")
implementation("org.tukaani:xz:1.9")
implementation("com.mojang:authlib:1.5.21")
implementation("net.iharder:base64:2.3.9")
implementation("com.github.Vatuu:discord-rpc:1.6.2")
implementation("net.sf.jopt-simple:jopt-simple:5.0.4")
implementation("org.zeroturnaround:zt-zip:1.15")
implementation("com.squareup.okhttp3:okhttp:4.9.3")
implementation("com.squareup.okhttp3:okhttp-tls:4.9.3")
implementation("net.mikehardy:google-analytics-java:2.0.11")
implementation("io.sentry:sentry:6.1.4")
implementation("org.mini2Dx:gettext-lib:1.11.0")
implementation("org.apache.logging.log4j:log4j-api:2.17.2")
implementation("org.apache.logging.log4j:log4j-core:2.17.2")
implementation("com.sangupta:murmur:1.0.0")
implementation("org.apache.commons:commons-lang3:3.12.0")
implementation("org.apache.commons:commons-text:1.10.0")
implementation("com.formdev:flatlaf:2.3")
implementation("com.formdev:flatlaf-extras:2.3")
implementation("com.github.oshi:oshi-core:6.1.6")
implementation("net.freeutils:jlhttp:2.6")
implementation("joda-time:joda-time:2.10.14")
implementation("org.apache.commons:commons-compress:1.21")
implementation("org.commonmark:commonmark:0.19.0")
implementation("com.github.hypfvieh:dbus-java:3.3.1")
implementation("com.apollographql.apollo:apollo-runtime:2.5.14")
implementation("com.apollographql.apollo:apollo-http-cache:2.5.14")
implementation("com.apollographql.apollo:apollo-coroutines-support:2.5.14")
// Kotlin
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4")
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-swing:1.6.4")
testImplementation("junit:junit:4.13.2")
testImplementation("org.mockito:mockito-core:4.6.1")
testImplementation("org.mockito:mockito-inline:4.6.1")
testImplementation("org.junit.jupiter:junit-jupiter-api:5.8.2")
testImplementation("org.assertj:assertj-swing-junit:3.17.1")
testImplementation("org.mock-server:mockserver-netty:5.13.2")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.8.2")
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:5.8.2")
}
application {
mainClass.set("com.atlauncher.App")
applicationDefaultJvmArgs = listOf(
"-Djna.nosys=true",
"-Djava.net.preferIPv4Stack=true",
"-Dawt.useSystemAAFontSettings=on",
"-Dswing.aatext=true"
)
}
apollo {
customTypeMapping.set(
mapOf(
"ID" to "java.lang.String",
"DateTime" to "java.util.Date"
)
)
@Suppress("OPT_IN_USAGE") // It's experimental, and that is fine
packageName.set("com.atlauncher.graphql")
}
extensions.configure<FactoryNamedDomainObjectContainer<GetTextSource>>("gettext") {
create("translations") {
srcDir = "src"
include = "main/java/com/atlauncher/**/*.java"
excludes = arrayOf(
"main/java/com/atlauncher/adapter/**/*.java",
"main/java/com/atlauncher/annot/**/*.java",
"main/java/com/atlauncher/collection/**/*.java",
"main/java/com/atlauncher/evnt/**/*.java",
"main/java/com/atlauncher/exceptions/**/*.java",
"main/java/com/atlauncher/interfaces/**/*.java",
"main/java/com/atlauncher/listener/**/*.java",
"main/java/com/atlauncher/utils/**/*.java"
)
commentFormat = " #. "
outputFilename = "translations.pot"
}
}
license {
header(project.file("LICENSEHEADER"))
include("**/*.java")
exclude("io/github/**/*.java")
exclude("net/minecraft/**/*.java")
exclude("com/atlauncher/graphql/**/*.java")
exclude("com/atlauncher/gui/layouts/WrapLayout.java")
newLine.set(false)
properties {
set("year", currentYear())
}
}
macAppBundle {
mainClassName = "com.atlauncher.App"
appName = "ATLauncher"
appStyle = "universalJavaApplicationStub"
runtimeConfigurationName = "shadow"
jarTask = "shadowJar"
icon = "src/main/resources/assets/image/icon.icns"
javaProperties["user.dir"] = "\$APP_ROOT/Contents/Java"
javaProperties["apple.laf.useScreenMenuBar"] = "true"
javaExtras["-Djna.nosys"] = "true"
javaExtras["-Djava.net.preferIPv4Stack"] = "true"
javaExtras["-Dawt.useSystemAAFontSettings"] = "on"
javaExtras["-Dswing.aatext"] = "true"
bundleExtras["JVMVersion"] = project.java.targetCompatibility.toString() + "+"
}
fun currentYear(): String {
val df = SimpleDateFormat("yyyy")
df.timeZone = TimeZone.getTimeZone("UTC")
return df.format(Date())
}
launch4j {
outfile = "ATLauncher-${project.version}.exe"
jreMinVersion = project.java.targetCompatibility.toString()
mainClassName = "com.atlauncher.App"
icon = "${projectDir}/src/main/resources/assets/image/icon.ico"
version = "${project.version}"
textVersion = "${project.version}"
copyright = "2013-${currentYear()} ${project.name}"
companyName = project.name
bundledJrePath = "jre/;%JAVA_HOME%;%PATH%"
jvmOptions = setOf(
"-Djna.nosys=true",
"-Djava.net.preferIPv4Stack=true",
"-Dawt.useSystemAAFontSettings=on",
"-Dswing.aatext=true"
)
}
fun getCopyPath(newSuffix: String, newLibs: String): File {
val archivePath = project.tasks.jar.get().archiveFile.get().asFile.path
return file(archivePath.replace(".jar", newSuffix).replace("libs", newLibs))
}
artifacts {
archives(tasks.shadowJar)
archives(getCopyPath(".exe", "launch4j"))
archives(getCopyPath(".zip", "distributions"))
}
fun getShouldIgnoreUpdate(version: String): Boolean {
return arrayOf("ALPHA", "BETA", "RC", "-M").any { version.toUpperCase() == (it) }
}
tasks {
test {
// Use JUnit Platform for unit tests.
useJUnitPlatform()
testlogger {
setTheme("mocha")
}
if (JavaVersion.current().isJava9Compatible) {
jvmArgs("--add-opens=java.base/sun.security.x509=ALL-UNNAMED")
}
}
jar {
manifest {
attributes(
"SplashScreen-Image" to "/assets/image/splash-screen.png",
"Implementation-Title" to project.name,
"Implementation-Version" to archiveVersion,
"Implementation-Vender" to "ATLauncher",
"Main-Class" to "com.atlauncher.App",
"Multi-Release" to "true"
)
}
}
shadowJar {
archiveClassifier.set(null as String?) // type problem shenanigans
minimize {
exclude(dependency("org.apache.logging.log4j:.*:.*"))
exclude(dependency("com.formdev:.*:.*"))
exclude(dependency("com.github.jnr:.*:.*"))
exclude(dependency("com.github.hypfvieh:.*:.*"))
exclude(dependency("org.apache.commons:commons-compress:.*"))
}
// these are included by dbus-java which is only used on Linux
exclude("jni/x86_64-Windows/")
exclude("jni/x86_64-SunOS/")
exclude("jni/x86_64-OpenBSD/")
exclude("jni/x86_64-FreeBSD/")
exclude("jni/x86_64-DragonFlyBSD/")
exclude("jni/sparcv9-SunOS/")
exclude("jni/ppc-AIX/")
exclude("jni/ppc64-AIX/")
exclude("jni/i386-Windows/")
exclude("jni/i386-SunOS/")
exclude("jni/Darwin/")
archiveClassifier.set("")
dependsOn(jar)
}
copyToResourcesJava {
rename("ATLauncher-${project.version}.jar", "ATLauncher.jar")
}
val copyArtifactsFinal = create("copyArtifactsFinal") {
doFirst {
println("ATLauncher has been built. Distribution files are located in the dist directory.")
}
}
val copyArtifacts = create<Copy>("copyArtifacts") {
dependsOn(build)
from(shadowJar)
from(getCopyPath(".exe", "launch4j"))
from(getCopyPath(".zip", "distributions"))
into("${projectDir}/dist")
finalizedBy(copyArtifactsFinal)
}
val downloadNewerUniversalJavaApplicationStub = create<Download>("downloadNewerUniversalJavaApplicationStub") {
description = "Downloads newer universalJavaApplicationStub"
src("https://raw.githubusercontent.com/tofi86/universalJavaApplicationStub/2dbbf92b35e61194266c985c8bc6b411053a1b4a/src/universalJavaApplicationStub")
dest(file("$buildDir/macApp/${project.name}.app/Contents/MacOS/universalJavaApplicationStub"))
overwrite(true)
}
register("createTestLauncherDir") {
project.file("testLauncher/dev").mkdirs()
}
val createMacApp = create<Zip>("createMacApp") {
dependsOn(named("createApp"), shadowJar)
from("$buildDir/macApp") {
include("${project.name}.app/**")
exclude("${project.name}.app/Contents/MacOS")
}
from("$buildDir/macApp") {
include("${project.name}.app/Contents/MacOS/**")
fileMode = 0x777
}
archiveFileName.set("${project.name}-${project.version}.zip")
}
clean {
doFirst {
delete("${projectDir}/dist")
}
}
dependencyUpdates {
rejectVersionIf {
getShouldIgnoreUpdate(candidate.version)
}
}
build {
setFinalizedBy(listOf(copyArtifacts))
dependsOn(createExe, createMacApp)
}
createApp {
finalizedBy(downloadNewerUniversalJavaApplicationStub)
}
}
project.afterEvaluate {
tasks.check {
/*
Trick gradle by not "removing" a task
(which throws an unsupported error),
Instead filter current tasks and then set the new list.
*/
setDependsOn(
dependsOn.filterNot {
(it as? Task)?.name == "checkLicenses"
}
)
}
}

View file

@ -1,14 +0,0 @@
plugins {
id 'java'
id 'application'
}
sourceCompatibility = '1.8'
targetCompatibility = '1.8'
group = 'com.atlauncher'
version = rootProject.file('src/main/resources/version').text.trim().replace('.Beta', '')
application {
mainClass = 'com.atlauncher.mclauncher.legacy.LegacyMCLauncher'
}

View file

@ -0,0 +1,16 @@
plugins {
java
application
}
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
group = "com.atlauncher"
version = rootProject.file("src/main/resources/version").readText().trim().replace(".Beta", "")
application {
mainClass.set("com.atlauncher.mclauncher.legacy.LegacyMCLauncher")
}

View file

@ -4,6 +4,9 @@
* Detailed information about configuring a multi-project build in Gradle can be found * Detailed information about configuring a multi-project build in Gradle can be found
* in the user manual at https://docs.gradle.org/7.1.1/userguide/multi_project_builds.html * in the user manual at https://docs.gradle.org/7.1.1/userguide/multi_project_builds.html
*/ */
rootProject.name = name // TODO simplify this
include('app') val props = java.util.Properties()
include('legacy-launch') props.load(File("gradle.properties").reader())
rootProject.name = props["name"] as String
include("app")
include("legacy-launch")