build.gradle 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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. compileTestJava {
  27. moduleOptions {
  28. compileOnClasspath = true
  29. }
  30. }
  31. test {
  32. useJUnitPlatform()
  33. moduleOptions {
  34. runOnClasspath = true
  35. }
  36. }
  37. application {
  38. setMainModule("MaterialFX.Demo")
  39. String main = project.findProperty("chooseMain").toString()
  40. if (main != "null" && !main.trim().isEmpty()) {
  41. setMainClassName(main)
  42. } else {
  43. setMainClassName("io.github.palexdev.materialfx.demo.Demo")
  44. }
  45. }
  46. jlink {
  47. options = ['--strip-debug', '--compress', '2', '--no-header-files', '--no-man-pages']
  48. launcher {
  49. mainClass = "io.github.palexdev.materialfx.demo.Demo"
  50. name = 'MaterialFX Demo'
  51. }
  52. jpackage {
  53. imageOptions = ['--icon', 'src/main/resources/logo.ico']
  54. }
  55. targetPlatform("linux-x64") {
  56. jdkHome = jdkDownload("https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-linux_x64.tar.gz")
  57. addExtraModulePath("/home/palexdev/Documents/JavaFX_jmods/linux_x64")
  58. }
  59. targetPlatform("win") {
  60. jdkHome = jdkDownload("https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-win_x64.zip")
  61. addExtraModulePath("/home/palexdev/Documents/JavaFX_jmods/win_x64")
  62. }
  63. targetPlatform("mac") {
  64. jdkHome = jdkDownload("https://cdn.azul.com/zulu/bin/zulu17.32.13-ca-jdk17.0.2-macosx_x64.tar.gz")
  65. addExtraModulePath("/home/palexdev/Documents/JavaFX_jmods/mac_x64")
  66. }
  67. addExtraDependencies('javafx')
  68. }
  69. tasks.register('doPackageAll') {
  70. doLast {
  71. if (Os.isFamily(Os.FAMILY_UNIX)) {
  72. exec {
  73. executable "$projectDir/scripts/JLinkPackage.sh"
  74. args = ["$buildDir"]
  75. }
  76. }
  77. }
  78. }
  79. jlinkZip.doLast {
  80. doPackageAll
  81. }