build.gradle 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import org.apache.tools.ant.taskdefs.condition.Os
  2. plugins {
  3. id 'application'
  4. id 'org.beryx.jlink' version "$jlink"
  5. }
  6. repositories {
  7. mavenCentral()
  8. flatDir {
  9. dirs "${project(':demo').projectDir}/libs"
  10. }
  11. }
  12. dependencies {
  13. testImplementation "org.testfx:testfx-core:$testfx"
  14. testImplementation "org.testfx:testfx-junit5:$testfx"
  15. testImplementation "org.junit.jupiter:junit-jupiter-api:$junit"
  16. testImplementation "org.junit.platform:junit-platform-suite-api:$junitSuite"
  17. testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit"
  18. implementation "io.github.palexdev:scenicview:$scenicView"
  19. implementation("fr.brouillard.oss:cssfx:$cssfx") { exclude group: 'org.openjfx' }
  20. implementation "org.kordamp.ikonli:ikonli-core:$ikonli"
  21. implementation "org.kordamp.ikonli:ikonli-javafx:$ikonli"
  22. implementation "org.kordamp.ikonli:ikonli-fontawesome5-pack:$ikonli"
  23. implementation "io.github.palexdev:virtualizedfx:$vfx"
  24. implementation project(':materialfx')
  25. }
  26. compileJava {
  27. sourceCompatibility = "$testJdk"
  28. targetCompatibility = "$testJdk"
  29. }
  30. compileTestJava {
  31. moduleOptions {
  32. compileOnClasspath = true
  33. }
  34. }
  35. test {
  36. useJUnitPlatform()
  37. moduleOptions {
  38. runOnClasspath = true
  39. }
  40. }
  41. application {
  42. setMainModule("MaterialFX.Demo")
  43. String main = project.findProperty("chooseMain").toString()
  44. if (main != "null" && !main.trim().isEmpty()) {
  45. setMainClassName(main)
  46. } else {
  47. setMainClassName("io.github.palexdev.materialfx.demo.Demo")
  48. }
  49. applicationDefaultJvmArgs = ["-Dglass.disableGrab=true"]
  50. }
  51. jlink {
  52. options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
  53. launcher {
  54. mainClass = "io.github.palexdev.materialfx.demo.Demo"
  55. name = 'MaterialFX Demo'
  56. }
  57. jpackage {
  58. imageOptions = ['--icon', 'src/main/resources/logo.ico']
  59. }
  60. targetPlatform("linux-x64") {
  61. jdkHome = jdkDownload("https://cdn.azul.com/zulu/bin/zulu19.32.13-ca-jdk19.0.2-linux_x64.tar.gz")
  62. addExtraModulePath("/home/palexdev/Documents/JavaFX_jmods/linux_x64")
  63. }
  64. targetPlatform("win") {
  65. jdkHome = jdkDownload("https://cdn.azul.com/zulu/bin/zulu19.32.13-ca-jdk19.0.2-win_x64.zip")
  66. addExtraModulePath("/home/palexdev/Documents/JavaFX_jmods/win_x64")
  67. }
  68. targetPlatform("mac") {
  69. jdkHome = jdkDownload("https://cdn.azul.com/zulu/bin/zulu19.32.13-ca-jdk19.0.2-macosx_x64.tar.gz")
  70. addExtraModulePath("/home/palexdev/Documents/JavaFX_jmods/mac_x64")
  71. }
  72. addExtraDependencies('javafx')
  73. }
  74. tasks.register('doPackageAll') {
  75. doLast {
  76. if (Os.isFamily(Os.FAMILY_UNIX)) {
  77. exec {
  78. executable "$projectDir/scripts/JLinkPackage.sh"
  79. args = ["$buildDir"]
  80. }
  81. }
  82. }
  83. }
  84. jlinkZip.doLast {
  85. doPackageAll
  86. }