/*
* STAROPENSOURCE ENGINE SOURCE FILE
* Copyright (c) 2024 The StarOpenSource Engine Authors
* Licensed under the GNU General Public License v3.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
// Plugins
plugins {
id("application")
}
// Dependencies
dependencies {
// sos!engine
implementation(project(":base"))
implementation(project(":ansi"))
}
// Configure JAR
tasks.withType {
manifest {
attributes.put("Main-Class", "de.staropensource.engine.testapp.Main")
}
}
// Configure application
application {
mainClass = "de.staropensource.engine.testapp.Main"
// JVM arguments
val jvmArgs: MutableList = mutableListOf()
// -> JVM
jvmArgs.add("-XX:+UnlockDiagnosticVMOptions")
if (hasProperty("jvm.logGC") && property("jvm.logGC") as String == "true")
jvmArgs.add("-Xlog:gc")
if (hasProperty("jvm.logJITandAOT") && property("jvm.logJITandAOT") as String == "true") {
jvmArgs.add("-XX:+PrintCompilation")
jvmArgs.add("-XX:+PrintInlining")
}
if (hasProperty("jvm.garbageCollector"))
when (property("jvm.garbageCollector")) {
"epsilon" -> jvmArgs.add("-XX:+UseEpsilonGC")
"serial" -> jvmArgs.add("-XX:+UseSerialGC")
"g1" -> jvmArgs.add("-XX:+UseG1GC")
}
// -> Jansi
jvmArgs.add("-Djansi.mode=force")
applicationDefaultJvmArgs = jvmArgs
}