Browse Source

Merge pull request #545 from tonihele/feature/gradle-template-improvements

Feature/gradle template improvements
Toni Helenius 1 year ago
parent
commit
93440a2e29

BIN
jme3-templates/src/com/jme3/gde/templates/GradleDesktopGameProject.zip


+ 14 - 5
jme3-templates/src/com/jme3/gde/templates/files/freemarker/build.gradle.ftl

@@ -7,11 +7,17 @@ plugins {
 group 'com.mygame'
 group 'com.mygame'
 version '1.0'
 version '1.0'
 
 
-mainClassName = "com.mygame.Main"
+application {
+    applicationName = '${name}'
+    mainClass = 'com.mygame.Main'
+    // Mac OS with LWJGL 3 needs to be started with this JVM argument
+    if (System.getProperty("os.name").toLowerCase().contains("mac")) {
+        applicationDefaultJvmArgs = ['-XstartOnFirstThread']
+    }
+}
 
 
 repositories {
 repositories {
     mavenCentral()
     mavenCentral()
-    jcenter()
     maven { url 'https://jitpack.io' }
     maven { url 'https://jitpack.io' }
 }
 }
 
 
@@ -45,7 +51,10 @@ dependencies {
   implementation "org.jmonkeyengine:jme3-core:$jmeVer"
   implementation "org.jmonkeyengine:jme3-core:$jmeVer"
   implementation "org.jmonkeyengine:jme3-desktop:$jmeVer"
   implementation "org.jmonkeyengine:jme3-desktop:$jmeVer"
   <#if jmeVersion.versionInfo.major gt 3 || (jmeVersion.versionInfo.major == 3 && jmeVersion.versionInfo.minor gte 6 )>
   <#if jmeVersion.versionInfo.major gt 3 || (jmeVersion.versionInfo.major == 3 && jmeVersion.versionInfo.minor gte 6 )>
-  implementation "org.jmonkeyengine:jme3-awt-dialogs:$jmeVer"
+  // Mac OS with LWJGL 3 doesn't allow AWT/Swing
+  if (!System.getProperty("os.name").toLowerCase().contains("mac")) {
+    implementation "org.jmonkeyengine:jme3-awt-dialogs:$jmeVer"
+  }
   </#if>
   </#if>
   <#if lwjglLibrary.isCoreJmeLibrary == true>
   <#if lwjglLibrary.isCoreJmeLibrary == true>
   implementation "${lwjglLibrary.groupId}:${lwjglLibrary.artifactId}:$jmeVer"
   implementation "${lwjglLibrary.groupId}:${lwjglLibrary.artifactId}:$jmeVer"
@@ -99,7 +108,7 @@ dependencies {
 
 
 jar {
 jar {
     manifest {
     manifest {
-        attributes 'Main-Class': "$mainClassName"
+        attributes 'Main-Class': application.mainClass
     }
     }
 }
 }
 
 
@@ -110,5 +119,5 @@ java {
 }
 }
 
 
 wrapper {
 wrapper {
-    gradleVersion = '7.6'
+    gradleVersion = '8.4'
 }
 }

+ 1 - 0
jme3-templates/src/com/jme3/gde/templates/gradledesktop/GradleDesktopGameWizardIterator.java

@@ -132,6 +132,7 @@ public class GradleDesktopGameWizardIterator implements WizardDescriptor./*Progr
         // Create build.gradle from template
         // Create build.gradle from template
         File gradleBuildFile = new File(dirF, "build.gradle");
         File gradleBuildFile = new File(dirF, "build.gradle");
         Map<String, Object> buildFileBindings = new HashMap<>();
         Map<String, Object> buildFileBindings = new HashMap<>();
+        buildFileBindings.put("name", wiz.getProperty("name"));
         buildFileBindings.put("jmeVersion", wiz.getProperty("jmeVersion"));
         buildFileBindings.put("jmeVersion", wiz.getProperty("jmeVersion"));
         buildFileBindings.put("lwjglLibrary", wiz.getProperty("lwjglLibrary"));
         buildFileBindings.put("lwjglLibrary", wiz.getProperty("lwjglLibrary"));
         buildFileBindings.put("guiLibrary", wiz.getProperty("guiLibrary"));
         buildFileBindings.put("guiLibrary", wiz.getProperty("guiLibrary"));

+ 1 - 1
jme3-templates/src/com/jme3/gde/templates/gradledesktop/options/AdditionalLibrary.java

@@ -99,7 +99,7 @@ public enum AdditionalLibrary implements TemplateLibrary {
     SHADERBLOW_EX("ShaderBlowEx", NbBundle.getMessage(AdditionalLibrary.class,
     SHADERBLOW_EX("ShaderBlowEx", NbBundle.getMessage(AdditionalLibrary.class,
             "additionalLibrary.shaderblowex.description"),
             "additionalLibrary.shaderblowex.description"),
             "com.github.polincdev", "ShaderBlowEx",
             "com.github.polincdev", "ShaderBlowEx",
-            "master-SNAPSHOT", false),
+            "-SNAPSHOT", false),
     SIO2("SiO2", NbBundle.getMessage(AdditionalLibrary.class,
     SIO2("SiO2", NbBundle.getMessage(AdditionalLibrary.class,
             "additionalLibrary.sio2.description"),
             "additionalLibrary.sio2.description"),
             "com.simsilica", "sio2",
             "com.simsilica", "sio2",