Guest User

Untitled

a guest
Apr 16th, 2024
12
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.01 KB | Source Code | 0 0
  1. import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
  2.  
  3. plugins {
  4. id("com.gluonhq.gluonfx-gradle-plugin") version("1.0.21")
  5. id("org.openjfx.javafxplugin") version("0.1.0")
  6. id("com.github.johnrengelman.shadow") version("8.1.1")
  7. id("java")
  8. id("application")
  9. id("idea")
  10. }
  11.  
  12. application {
  13. mainClass = 'com.graalonline.apps.remotecontrol.FXRunner'
  14. }
  15.  
  16. repositories {
  17. mavenCentral()
  18. gradlePluginPortal()
  19. google()
  20. mavenCentral()
  21. mavenLocal()
  22. maven {
  23. url("https://oss.sonatype.org/content/repositories/snapshots/")
  24. }
  25. maven {
  26. url "https://nexus.gluonhq.com/nexus/content/repositories/releases"
  27. }
  28. maven { url 'https://jitpack.io' }
  29. }
  30.  
  31. applicationName = 'RemoteControlFX'
  32. group = 'com.graalonline.apps'
  33. mainClassName = 'com.graalonline.apps.remotecontrol.FXRunner'
  34. version = '1.0'
  35.  
  36. compileJava.options.encoding = 'UTF-8'
  37. System.setProperty('file.encoding', 'UTF-8')
  38.  
  39.  
  40.  
  41. OperatingSystem os = DefaultNativePlatform.currentOperatingSystem
  42. gluonfx {
  43. appIdentifier = applicationName
  44.  
  45. if (os.isWindows()) {
  46. graalvmHome = GRAALVM_WINDOWS_HOME
  47. } else if (os.isLinux()) {
  48. graalvmHome = GRAALVM_LINUX_HOME
  49. } else if (os.isMacOsX()) {
  50. graalvmHome = GRAALVM_MACOSX_HOME
  51. }
  52.  
  53. }
  54.  
  55. java {
  56. toolchain {
  57. languageVersion = JavaLanguageVersion.of(17)
  58. }
  59. }
  60.  
  61. nativeBuild {
  62. if (os.isWindows()) {
  63. applicationDefaultJvmArgs = [
  64. "-Djava.home=" + gluonfx.graalvmHome,
  65. "-Djava.awt.headless=true",
  66. "-Dfile.encoding=UTF-8",
  67. "-H:+AllowIncompleteClasspath",
  68. "-H:-IncludeMethodsData",
  69. "--no-fallback",
  70. "--enable-http",
  71. "--enable-https",
  72. "--allow-incomplete-classpath",
  73. "--static"
  74. ]
  75. } else if (os.isLinux()) {
  76. applicationDefaultJvmArgs = [
  77. "-Djava.home=" + GRAALVM_LINUX_HOME,
  78. "-Djava.awt.headless=true",
  79. "-Dfile.encoding=UTF-8",
  80. "-Dprism.verbose=true",
  81. "-Djavafx.verbose=true",
  82. "--report-unsupported-elements-at-runtime",
  83. "-H:+AllowIncompleteClasspath",
  84. "-H:-IncludeMethodsData",
  85. "-H:+ReportExceptionStackTraces",
  86. "-H:+PrintAnalysisCallTree",
  87. "--initialize-at-build-time=com.sun.javafx.PlatformUtil",
  88. "--no-fallback",
  89. "--enable-http",
  90. "--enable-https",
  91. "--allow-incomplete-classpath",
  92. "--static"
  93. ]
  94. }
  95. }
  96.  
  97. nativeBuild {
  98.  
  99. }
  100.  
  101. javafx {
  102. version = '21'
  103. modules = ['javafx.base', 'javafx.controls', 'javafx.fxml', 'javafx.web', 'javafx.media', 'javafx.swing', 'javafx.graphics']
  104. }
  105.  
  106. dependencies {
  107. String osSuffix = getOSSuffix() // Custom method to determine OS suffix
  108. runtimeOnly("com.google.flogger:flogger-system-backend:0.5.1")
  109.  
  110.  
  111. // SubstrateVM features
  112. compileOnly 'org.graalvm.nativeimage:svm:22.1.0'
  113.  
  114. //SWT for Native tools
  115. implementation "org.eclipse.platform:org.eclipse.swt.$osSuffix:3.124.200"
  116.  
  117. //File Browser
  118. implementation 'org.jsoup:jsoup:1.17.2'
  119. implementation 'com.googlecode.soundlibs:tritonus-share:0.3.7-1'
  120.  
  121. // Reactor
  122. implementation 'io.projectreactor:reactor-core:3.6.3'
  123.  
  124. // SLF4j logging
  125. implementation 'org.slf4j:slf4j-api:2.0.7'
  126. implementation 'org.slf4j:slf4j-simple:2.0.7'
  127.  
  128. // JNA
  129. implementation 'net.java.dev.jna:jna:5.13.0'
  130. implementation 'net.java.dev.jna:jna-platform:5.13.0'
  131.  
  132. // ACE Code Editor
  133. implementation 'com.github.orange451:AceFX:main-SNAPSHOT'
  134.  
  135. // Apache Mina
  136. implementation 'org.apache.mina:mina-core:2.2.2'
  137.  
  138. // JavaFX
  139. implementation 'com.jfoenix:jfoenix:9.0.10'
  140.  
  141. // Ikonli
  142. implementation 'org.kordamp.ikonli:ikonli-javafx:12.3.1'
  143. implementation 'org.kordamp.ikonli:ikonli-materialdesign2-pack:12.3.1'
  144. implementation 'io.github.mkpaz:atlantafx-base:2.0.1'
  145.  
  146. //RC Core
  147. implementation 'com.google.flogger:flogger:0.5.1'
  148. implementation 'io.reactivex:rxjava:1.0.9'
  149. implementation 'org.apache.commons:commons-compress:1.21'
  150. implementation 'org.jetbrains:annotations:19.0.0'
  151. implementation 'com.google.code.gson:gson:2.8.9'
  152. implementation 'commons-codec:commons-codec:1.13'
  153. implementation 'commons-io:commons-io:2.7'
  154. }
  155.  
  156. static String getOSSuffix() {
  157. String osName = System.getProperty("os.name").toLowerCase()
  158. if (osName.contains("win")) {
  159. return "win32.win32.x86_64"
  160. } else if (osName.contains("mac")) {
  161. return "cocoa.macosx.x86_64"
  162. } else if (osName.contains("linux") || osName.contains("nix")) {
  163. return "gtk.linux.x86_64"
  164. } else {
  165. throw new GradleException("Unsupported operating system for SWT dependency")
  166. }
  167. }
  168.  
  169. jar {
  170. manifest {
  171. attributes 'Implementation-Title': applicationName,
  172. 'Implementation-Version': version,
  173. 'Main-Class': mainClassName,
  174. 'Built-By': 'GraalOnline Dev Team'
  175. }
  176. }
  177.  
  178. run {
  179. List<String> args = new ArrayList<String>() {{
  180. add("--module-path")
  181. add(System.getenv('JAVAFX_SDK') + "/lib")
  182. add("--add-modules")
  183. add("javafx.base,javafx.controls,javafx.fxml,javafx.web,javafx.media,javafx.graphics,javafx.swing")
  184. }}
  185. applicationDefaultJvmArgs = args
  186. jvmArgs = args
  187.  
  188. doFirst {
  189. new File(project.buildDir, "/resources/main/config.properties").delete()
  190. }
  191. }
  192.  
  193.  
  194.  
  195. configurations.configureEach {
  196. resolutionStrategy {
  197. eachDependency {
  198. if (requested.name.contains('${osgi.platform}')) {
  199. // use MacOs X86 as "osgi.platform" when computing the dependencies
  200. useTarget requested.toString().replace('${osgi.platform}', 'cocoa.macosx.x86_64')
  201. }
  202. }
  203. }
  204. }
  205.  
Add Comment
Please, Sign In to add comment