|
|
|
@ -63,3 +63,35 @@ tasks.shadowJar {
|
|
|
|
|
exclude("com/sun/jna/sunos-x86/") |
|
|
|
|
exclude("com/sun/jna/sunos-x86-64/") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
abstract class DemoTask : JavaExec() { |
|
|
|
|
init { |
|
|
|
|
setMain("UIDemo") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Option(option = "class", description = "Specifies the main class to run (e.g. UIDemo, ui.table.TableDemo, ui.button.ButtonDemo, ...)") |
|
|
|
|
override fun setMain(mainClassName: String?) = super.setMain(mainClassName) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
val runDemo by tasks.registering(DemoTask::class) { |
|
|
|
|
group = LifecycleBasePlugin.VERIFICATION_GROUP |
|
|
|
|
description = "Launches demo (e.g. UIDemo, ui.table.TableDemo, ui.button.ButtonDemo, ...)" |
|
|
|
|
|
|
|
|
|
classpath(sourceSets.test.map { it.runtimeClasspath }) |
|
|
|
|
|
|
|
|
|
// Pass the property to the demo |
|
|
|
|
// By default JavaExec is executed in its own JVM with its own properties |
|
|
|
|
// It allows to pass system properties via gradlew -Ddarklaf.prop=value |
|
|
|
|
fun passProperty(name: String, default: String? = null) { |
|
|
|
|
val value = System.getProperty(name) ?: default |
|
|
|
|
value?.let { systemProperty(name, it) } |
|
|
|
|
} |
|
|
|
|
val props = System.getProperties() |
|
|
|
|
@Suppress("UNCHECKED_CAST") |
|
|
|
|
for (e in props.propertyNames() as `java.util`.Enumeration<String>) { |
|
|
|
|
if (e.startsWith("darklaf.")) { |
|
|
|
|
passProperty(e) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
passProperty("java.awt.headless") |
|
|
|
|
} |
|
|
|
|