Browse Source

Removed deprecated Gradle stuff and upgraded Gradle to 4.10.2 (#185)

Toni Helenius 6 years ago
parent
commit
7eeeda3acb
5 changed files with 411 additions and 384 deletions
  1. 365 343
      build.gradle
  2. BIN
      gradle/wrapper/gradle-wrapper.jar
  3. 1 2
      gradle/wrapper/gradle-wrapper.properties
  4. 42 30
      gradlew
  5. 3 9
      gradlew.bat

+ 365 - 343
build.gradle

@@ -138,29 +138,30 @@ task checkPlatformConfig {
     }
 }
 
-task copyBaseLibs(dependsOn:configurations.corelibs) <<{
-    description "Copies the library files needed to run the SDK to "+
-                "jme3-core-baselibs and jme3-core-libraries"
-
-    // for each dependency in corelibs..
-    //project.configurations.corelibs.dependencies.each {dep ->
-    //println(project.configurations.corelibs.dependencies)
-   
-    project.configurations.corelibs.collect {file ->
-        // copy built jme3 jar files to jme3-core-baselibs
-        if (file.name.startsWith("jme3") && !isSourceOrJavadoc(file.name)){
-            copy {
-                from file
-                into "jme3-core-baselibs/release/modules/ext/"
-            }
-        }else if( !isSourceOrJavadoc(file.name)){
-            copy {
-                from file
-                into "jme3-core-libraries/release/modules/ext/"
+task copyBaseLibs(dependsOn:configurations.corelibs) {
+    doLast {
+        description "Copies the library files needed to run the SDK to "+
+                    "jme3-core-baselibs and jme3-core-libraries"
+
+        // for each dependency in corelibs..
+        //project.configurations.corelibs.dependencies.each {dep ->
+        //println(project.configurations.corelibs.dependencies)
+
+        project.configurations.corelibs.collect {file ->
+            // copy built jme3 jar files to jme3-core-baselibs
+            if (file.name.startsWith("jme3") && !isSourceOrJavadoc(file.name)){
+                copy {
+                    from file
+                    into "jme3-core-baselibs/release/modules/ext/"
+                }
+            }else if( !isSourceOrJavadoc(file.name)){
+                copy {
+                    from file
+                    into "jme3-core-libraries/release/modules/ext/"
+                }
             }
         }
     }
-    
 }
 
 copyBaseLibs.inputs.files configurations.corelibs.resolve()
@@ -182,174 +183,178 @@ def isJmeDep(dep) {
     return dep.startsWith("jme3")
 }
 
-task createBaseXml(dependsOn: configurations.corelibs) <<{
-    description "Creates the project.xml files for "+
-                "jme3-core-baselibs and jme3-core-libraries"
-    def jmeJarFiles = [] // jme3 jar files
-    def externalJarFiles = [] // external jar files
-
-    // collect jar files
-    project.configurations.corelibs.collect {file ->
-        // copy built jme3 jar files to jme3-core-baselibs
-        if (file.name.startsWith("jme3") && !isSourceOrJavadoc(file.name)){
-        
-            //collect jme jars
-            if(!jmeJarFiles.contains(file)) {
-                jmeJarFiles.add(file)
+task createBaseXml(dependsOn: configurations.corelibs) {
+    doLast {
+        description "Creates the project.xml files for "+
+                    "jme3-core-baselibs and jme3-core-libraries"
+        def jmeJarFiles = [] // jme3 jar files
+        def externalJarFiles = [] // external jar files
+
+        // collect jar files
+        project.configurations.corelibs.collect {file ->
+            // copy built jme3 jar files to jme3-core-baselibs
+            if (file.name.startsWith("jme3") && !isSourceOrJavadoc(file.name)){
+
+                //collect jme jars
+                if(!jmeJarFiles.contains(file)) {
+                    jmeJarFiles.add(file)
+                }
+
+            } else if(!isSourceOrJavadoc(file.name)) {
+                //collect external jars
+                externalJarFiles.add(file)
+
             }
-            
-        } else if(!isSourceOrJavadoc(file.name)) {
-            //collect external jars
-            externalJarFiles.add(file)
-            
+
         }
 
-    }
-  
-    // collect base packages
-    def packages = []
-    jmeJarFiles.each{jarFile ->
-        ZipFile file = new ZipFile(jarFile)
-        file.entries().each { entry ->
-            if(entry.name.endsWith('.class')){
-                // TODO: "/" works on windows?
-                def pathPart = entry.name.substring(0,entry.name.lastIndexOf('/'))
-                def classPath = pathPart.replace('/','.');
-                if(!packages.contains(classPath)){
-                    packages.add(classPath)
+        // collect base packages
+        def packages = []
+        jmeJarFiles.each{jarFile ->
+            ZipFile file = new ZipFile(jarFile)
+            file.entries().each { entry ->
+                if(entry.name.endsWith('.class')){
+                    // TODO: "/" works on windows?
+                    def pathPart = entry.name.substring(0,entry.name.lastIndexOf('/'))
+                    def classPath = pathPart.replace('/','.');
+                    if(!packages.contains(classPath)){
+                        packages.add(classPath)
+                    }
                 }
             }
         }
-    }
 
-    // collect library packages
-    def extPackages = []
-    externalJarFiles.each{jarFile ->
-        ZipFile file = new ZipFile(jarFile)
-        file.entries().each { entry ->
-            if(entry.name.endsWith('.class')){
-                // TODO: "/" works on windows?
-                def pathPart = entry.name.substring(0,entry.name.lastIndexOf('/'))
-                def classPath = pathPart.replace('/','.');
-                if(!extPackages.contains(classPath)){
-                    extPackages.add(classPath)
+        // collect library packages
+        def extPackages = []
+        externalJarFiles.each{jarFile ->
+            ZipFile file = new ZipFile(jarFile)
+            file.entries().each { entry ->
+                if(entry.name.endsWith('.class')){
+                    // TODO: "/" works on windows?
+                    def pathPart = entry.name.substring(0,entry.name.lastIndexOf('/'))
+                    def classPath = pathPart.replace('/','.');
+                    if(!extPackages.contains(classPath)){
+                        extPackages.add(classPath)
+                    }
                 }
             }
         }
-    }
 
-    def writer = new StringWriter()
-    def xml = new MarkupBuilder(writer)
-    xml.mkp.xmlDeclaration(version:'1.0')
-    xml.project(xmlns:"http://www.netbeans.org/ns/project/1"){
-        type "org.netbeans.modules.apisupport.project"
-        configuration {
-            data(xmlns:"http://www.netbeans.org/ns/nb-module-project/3") {
-                "code-name-base" "com.jme3.gde.core.baselibs"
-                "suite-component"{}
-                "module-dependencies"{
-                    dependency{
-                        "code-name-base" "com.jme3.gde.core.libraries"
-                        "build-prerequisite"{}
-                        "compile-dependency"{}
-                        "run-dependency"{
-                            "release-version" "1"
-                            "specification-version" jmeVersion
+        def writer = new StringWriter()
+        def xml = new MarkupBuilder(writer)
+        xml.mkp.xmlDeclaration(version:'1.0')
+        xml.project(xmlns:"http://www.netbeans.org/ns/project/1"){
+            type "org.netbeans.modules.apisupport.project"
+            configuration {
+                data(xmlns:"http://www.netbeans.org/ns/nb-module-project/3") {
+                    "code-name-base" "com.jme3.gde.core.baselibs"
+                    "suite-component"{}
+                    "module-dependencies"{
+                        dependency{
+                            "code-name-base" "com.jme3.gde.core.libraries"
+                            "build-prerequisite"{}
+                            "compile-dependency"{}
+                            "run-dependency"{
+                                "release-version" "1"
+                                "specification-version" jmeVersion
+                            }
                         }
                     }
-                }
-                "public-packages"{
-                    packages.each{
-                        "package" it
+                    "public-packages"{
+                        packages.each{
+                            "package" it
+                        }
                     }
-                }
-                jmeJarFiles.each{jarFile ->
-                    "class-path-extension"{
-                        "runtime-relative-path" "ext/${jarFile.name}"
-                        "binary-origin" "release/modules/ext/${jarFile.name}"
+                    jmeJarFiles.each{jarFile ->
+                        "class-path-extension"{
+                            "runtime-relative-path" "ext/${jarFile.name}"
+                            "binary-origin" "release/modules/ext/${jarFile.name}"
+                        }
                     }
                 }
             }
         }
-    }
-    // write XML file
-    File baselibsProjectFile = file("jme3-core-baselibs/nbproject/project.xml");
-    baselibsProjectFile.write(writer.toString())
-
-    def extWriter = new StringWriter()
-    def extXml = new MarkupBuilder(extWriter)
-//    extXml.mkp.xmlDeclaration(version:'1.0')
-    extXml.project(xmlns:"http://www.netbeans.org/ns/project/1"){
-        type "org.netbeans.modules.apisupport.project"
-        configuration {
-            data(xmlns:"http://www.netbeans.org/ns/nb-module-project/3") {
-                "code-name-base" "com.jme3.gde.core.libraries"
-                "suite-component"{}
-                "module-dependencies"{}
-                "public-packages"{
-                    extPackages.each{
-                        "package" it
+        // write XML file
+        File baselibsProjectFile = file("jme3-core-baselibs/nbproject/project.xml");
+        baselibsProjectFile.write(writer.toString())
+
+        def extWriter = new StringWriter()
+        def extXml = new MarkupBuilder(extWriter)
+    //    extXml.mkp.xmlDeclaration(version:'1.0')
+        extXml.project(xmlns:"http://www.netbeans.org/ns/project/1"){
+            type "org.netbeans.modules.apisupport.project"
+            configuration {
+                data(xmlns:"http://www.netbeans.org/ns/nb-module-project/3") {
+                    "code-name-base" "com.jme3.gde.core.libraries"
+                    "suite-component"{}
+                    "module-dependencies"{}
+                    "public-packages"{
+                        extPackages.each{
+                            "package" it
+                        }
                     }
-                }
-                externalJarFiles.each{jarFile ->
-                    "class-path-extension"{
-                        "runtime-relative-path" "ext/${jarFile.name}"
-                        "binary-origin" "release/modules/ext/${jarFile.name}"
+                    externalJarFiles.each{jarFile ->
+                        "class-path-extension"{
+                            "runtime-relative-path" "ext/${jarFile.name}"
+                            "binary-origin" "release/modules/ext/${jarFile.name}"
+                        }
                     }
                 }
             }
         }
+        // write XML file
+        File librariesProjectFile = file("jme3-core-libraries/nbproject/project.xml");
+        librariesProjectFile.write(extWriter.toString())
     }
-    // write XML file
-    File librariesProjectFile = file("jme3-core-libraries/nbproject/project.xml");
-    librariesProjectFile.write(extWriter.toString())
 }
 createBaseXml.inputs.files configurations.corelibs.resolve()
 createBaseXml.outputs.file "jme3-core-baselibs/nbproject/project.xml"
 createBaseXml.outputs.file "jme3-core-libraries/nbproject/project.xml"
 
-task copyProjectLibs(dependsOn: [configurations.corelibs, configurations.testdatalibs]) <<{
-    description "Copies the jar files needed to supply the J2SE Libraries in the "+
-                "SDK to jme3-project-baselibs and jme3-project-libraries"
-
-    // for each dependency in corelibs and optlibs..
-    def deps = []
-    deps.addAll(project.configurations.corelibs.files)
-    deps.addAll(project.configurations.optlibs.files)
-    deps.each {dep ->
-        // copy jme3 jar files, sources and javadocs to jme3-project-baselibs
-        
-        if(isSource(dep.name)){
-            copy {
-                from dep
-                into "jme3-project-baselibs/release/libs/"
-            }
-        } else if(isJavadoc(dep.name)){
-            copy {
-                from dep
-                into "jme3-project-baselibs/release/libs/"
-            }
-        } else if(isJmeDep(dep.name)){
-            copy {
-                from dep
-                into "jme3-project-baselibs/release/libs/"
-            }
-        } else{
-            copy {
-                from dep
-                into "jme3-project-libraries/release/libs/"
+task copyProjectLibs(dependsOn: [configurations.corelibs, configurations.testdatalibs]) {
+    doLast {
+        description "Copies the jar files needed to supply the J2SE Libraries in the "+
+                    "SDK to jme3-project-baselibs and jme3-project-libraries"
+
+        // for each dependency in corelibs and optlibs..
+        def deps = []
+        deps.addAll(project.configurations.corelibs.files)
+        deps.addAll(project.configurations.optlibs.files)
+        deps.each {dep ->
+            // copy jme3 jar files, sources and javadocs to jme3-project-baselibs
+
+            if(isSource(dep.name)){
+                copy {
+                    from dep
+                    into "jme3-project-baselibs/release/libs/"
+                }
+            } else if(isJavadoc(dep.name)){
+                copy {
+                    from dep
+                    into "jme3-project-baselibs/release/libs/"
+                }
+            } else if(isJmeDep(dep.name)){
+                copy {
+                    from dep
+                    into "jme3-project-baselibs/release/libs/"
+                }
+            } else{
+                copy {
+                    from dep
+                    into "jme3-project-libraries/release/libs/"
+                }
             }
+
         }
-       
-    }
 
-    project.configurations.testdatalibs.files.each {dep ->
-        // copy jme3 test data to jme3-project-testdata
-        if(isJmeDep(dep.name)){
-            copy {
-                from dep
-                into "jme3-project-testdata/release/libs/"
-                rename ("jme3-testdata(.*)", "jme3-testdata.jar")
+        project.configurations.testdatalibs.files.each {dep ->
+            // copy jme3 test data to jme3-project-testdata
+            if(isJmeDep(dep.name)){
+                copy {
+                    from dep
+                    into "jme3-project-testdata/release/libs/"
+                    rename ("jme3-testdata(.*)", "jme3-testdata.jar")
+                }
             }
         }
     }
@@ -365,166 +370,170 @@ copyProjectLibs.outputs.dir "jme3-project-testdata/release/libs/"
 def makeName(builder, nameR) { builder.name nameR }
 def makeFile(builder, nameR) { builder.file(name:nameR, url:nameR) }
 
-task createProjectXml(dependsOn: configurations.corelibs) <<{
-    description "Creates needed J2SE library and layer XML files in jme3-project-baselibs"
+task createProjectXml(dependsOn: configurations.corelibs) {
+    doLast {
+        description "Creates needed J2SE library and layer XML files in jme3-project-baselibs"
 
-    def eol = System.properties.'line.separator'
-    def j2seLibraries = [] // created J2SE library descriptors
+        def eol = System.properties.'line.separator'
+        def j2seLibraries = [] // created J2SE library descriptors
 
-    
-   
-    // for each dependency in corelibs..
-    def deps = []
-    deps.addAll(project.configurations.corelibs.dependencies)
-    deps.addAll(project.configurations.optlibs.dependencies)
-    deps.each {dep ->
-        def jmeJarFiles = [] // jme3 jar files
-        def jmeSourceFiles = [] // jme3 sources
-        def jmeJavadocFiles = [] // jme3 javadoc
-        def externalJarFiles = [] // external jar files
-        if(j2seLibraries.contains(dep.name+".xml")){
-            return;
-        }
 
-        j2seLibraries.add(dep.name+".xml")
-        project.configurations.corelibs.files{ d -> return d.name == dep.name}.each{ file ->
-            if(isSource(file.name)){
-                if(!jmeSourceFiles.contains(file.name)){
-                    jmeSourceFiles.add(file.name)
-                }
-            } else if(isJavadoc(file.name)){
-                if(!jmeJavadocFiles.contains(file.name)){
-                    jmeJavadocFiles.add(file.name)
-                }
-            } else if(isJmeDep(file.name)){
-                if(!jmeJarFiles.contains(file.name)){
-                    jmeJarFiles.add(file.name)
-                }
-            } else{
-                if(!externalJarFiles.contains(file.name)){
-                    externalJarFiles.add(file.name)
+
+        // for each dependency in corelibs..
+        def deps = []
+        deps.addAll(project.configurations.corelibs.dependencies)
+        deps.addAll(project.configurations.optlibs.dependencies)
+        deps.each {dep ->
+            def jmeJarFiles = [] // jme3 jar files
+            def jmeSourceFiles = [] // jme3 sources
+            def jmeJavadocFiles = [] // jme3 javadoc
+            def externalJarFiles = [] // external jar files
+            if(j2seLibraries.contains(dep.name+".xml")){
+                return;
+            }
+
+            j2seLibraries.add(dep.name+".xml")
+            project.configurations.corelibs.files{ d -> return d.name == dep.name}.each{ file ->
+                if(isSource(file.name)){
+                    if(!jmeSourceFiles.contains(file.name)){
+                        jmeSourceFiles.add(file.name)
+                    }
+                } else if(isJavadoc(file.name)){
+                    if(!jmeJavadocFiles.contains(file.name)){
+                        jmeJavadocFiles.add(file.name)
+                    }
+                } else if(isJmeDep(file.name)){
+                    if(!jmeJarFiles.contains(file.name)){
+                        jmeJarFiles.add(file.name)
+                    }
+                } else{
+                    if(!externalJarFiles.contains(file.name)){
+                        externalJarFiles.add(file.name)
+                    }
                 }
             }
-        }
 
-        project.configurations.optlibs.files{ d -> return d.name == dep.name}.each{ file ->
+            project.configurations.optlibs.files{ d -> return d.name == dep.name}.each{ file ->
 
-            if(isSource(file.name)){
-                if(!jmeSourceFiles.contains(file.name)){
-                    jmeSourceFiles.add(file.name)
-                }
-            } else if(isJavadoc(file.name)){
-                if(!jmeJavadocFiles.contains(file.name)){
-                    jmeJavadocFiles.add(file.name)
-                }
-            } else if(isJmeDep(file.name)){
-                if(!jmeJarFiles.contains(file.name)){
-                    jmeJarFiles.add(file.name)
-                }
-            } else {
-                if(!externalJarFiles.contains(file.name)){
-                    externalJarFiles.add(file.name)
+                if(isSource(file.name)){
+                    if(!jmeSourceFiles.contains(file.name)){
+                        jmeSourceFiles.add(file.name)
+                    }
+                } else if(isJavadoc(file.name)){
+                    if(!jmeJavadocFiles.contains(file.name)){
+                        jmeJavadocFiles.add(file.name)
+                    }
+                } else if(isJmeDep(file.name)){
+                    if(!jmeJarFiles.contains(file.name)){
+                        jmeJarFiles.add(file.name)
+                    }
+                } else {
+                    if(!externalJarFiles.contains(file.name)){
+                        externalJarFiles.add(file.name)
+                    }
                 }
             }
-        }
-        
-        // Workarounds where the automatic dependency detection did not work. This is mainly when there are runtime dependencies which are not available as artifacts
-        if (dep.name.equals("jme3-jbullet")) {
-            externalJarFiles.add("jbullet.jar")
-            externalJarFiles.add("stack-alloc.jar")
-        }
 
-        
-        
-        // create J2SE library descriptor xml file
-        def libraryWriter = new StringWriter()
-        def libraryXml = new MarkupBuilder(libraryWriter)
-//        xml.mkp.xmlDeclaration(version:'1.0')
-        libraryWriter << '<?xml version="1.0" encoding="UTF-8"?>' << eol
-        libraryWriter << '<!DOCTYPE library PUBLIC "-//NetBeans//DTD Library Declaration 1.0//EN" "http://www.netbeans.org/dtds/library-declaration-1_0.dtd">' << eol
-        libraryXml.library(version:"1.0", encoding: "UTF-8"){
-            makeName(libraryXml, "${dep.name}")
-            type "j2se"
-            "localizing-bundle" "com.jme3.gde.project.baselibs.Bundle"
-            volume{
-                type "classpath"
-                
-                resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jmeJarFiles[0]}!/"
-                
-                /* Usually we don't add all the jmeJarFiles, this is because e.g. each library depends on core,
-                 * some depend on jme3-terrain etc, but it's the users duty to add the correct libraries.
-                 * If we would add all those each library would have it's one jme3-core, which might even lead
-                 * to build errors then.
-                 */
-                if (dep.name.equals("jme3_xbuf")) {
-                    jmeJarFiles.each{jar ->
-                        if (jar.startsWith("jme3_xbuf")) {
-                            /* Technically you would only need the loaders, not the spatial viewer,
-                             * but users can edit the library if they want to strip off
-                             * the last few possible kilobytes */
-                            resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/$jar!/"
+            // Workarounds where the automatic dependency detection did not work. This is mainly when there are runtime dependencies which are not available as artifacts
+            if (dep.name.equals("jme3-jbullet")) {
+                externalJarFiles.add("jbullet.jar")
+                externalJarFiles.add("stack-alloc.jar")
+            }
+
+
+
+            // create J2SE library descriptor xml file
+            def libraryWriter = new StringWriter()
+            def libraryXml = new MarkupBuilder(libraryWriter)
+    //        xml.mkp.xmlDeclaration(version:'1.0')
+            libraryWriter << '<?xml version="1.0" encoding="UTF-8"?>' << eol
+            libraryWriter << '<!DOCTYPE library PUBLIC "-//NetBeans//DTD Library Declaration 1.0//EN" "http://www.netbeans.org/dtds/library-declaration-1_0.dtd">' << eol
+            libraryXml.library(version:"1.0", encoding: "UTF-8"){
+                makeName(libraryXml, "${dep.name}")
+                type "j2se"
+                "localizing-bundle" "com.jme3.gde.project.baselibs.Bundle"
+                volume{
+                    type "classpath"
+
+                    resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jmeJarFiles[0]}!/"
+
+                    /* Usually we don't add all the jmeJarFiles, this is because e.g. each library depends on core,
+                     * some depend on jme3-terrain etc, but it's the users duty to add the correct libraries.
+                     * If we would add all those each library would have it's one jme3-core, which might even lead
+                     * to build errors then.
+                     */
+                    if (dep.name.equals("jme3_xbuf")) {
+                        jmeJarFiles.each{jar ->
+                            if (jar.startsWith("jme3_xbuf")) {
+                                /* Technically you would only need the loaders, not the spatial viewer,
+                                 * but users can edit the library if they want to strip off
+                                 * the last few possible kilobytes */
+                                resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/$jar!/"
+                            }
                         }
                     }
+
+                    externalJarFiles.each{jar ->
+                        resource "jar:nbinst://com.jme3.gde.project.libraries/libs/${jar}!/"
+                    }
                 }
-                
-                externalJarFiles.each{jar ->
-                    resource "jar:nbinst://com.jme3.gde.project.libraries/libs/${jar}!/"
-                }
-            }
-            volume{
-                type "src"
-                jmeSourceFiles.each{jar ->
-                    resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jar}!/"
+                volume{
+                    type "src"
+                    jmeSourceFiles.each{jar ->
+                        resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jar}!/"
+                    }
                 }
-            }
-            volume{
-                type "javadoc"
-                jmeJavadocFiles.each{jar ->
-                    resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jar}!/"
+                volume{
+                    type "javadoc"
+                    jmeJavadocFiles.each{jar ->
+                        resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jar}!/"
+                    }
                 }
             }
+            // write XML file
+            File libraryXmlFile = file("jme3-project-baselibs/src/com/jme3/gde/project/baselibs/${dep.name}.xml");
+            libraryXmlFile.write(libraryWriter.toString())
         }
-        // write XML file
-        File libraryXmlFile = file("jme3-project-baselibs/src/com/jme3/gde/project/baselibs/${dep.name}.xml");
-        libraryXmlFile.write(libraryWriter.toString())
-    }
 
-    // create layer.xml file with entries of library xml files
-    def layerWriter = new StringWriter()
-    def layerXml = new MarkupBuilder(layerWriter)
-//    layerXml.mkp.xmlDeclaration(version:'1.0')
-    layerWriter << '<?xml version="1.0" encoding="UTF-8"?>' << eol
-    layerWriter << '<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">' << eol
-    layerXml.filesystem{
-        folder(name:"org-netbeans-api-project-libraries"){
-            folder(name:"Libraries"){
-                j2seLibraries.each{lib ->
-                    makeFile(layerXml, lib)
+        // create layer.xml file with entries of library xml files
+        def layerWriter = new StringWriter()
+        def layerXml = new MarkupBuilder(layerWriter)
+    //    layerXml.mkp.xmlDeclaration(version:'1.0')
+        layerWriter << '<?xml version="1.0" encoding="UTF-8"?>' << eol
+        layerWriter << '<!DOCTYPE filesystem PUBLIC "-//NetBeans//DTD Filesystem 1.1//EN" "http://www.netbeans.org/dtds/filesystem-1_1.dtd">' << eol
+        layerXml.filesystem{
+            folder(name:"org-netbeans-api-project-libraries"){
+                folder(name:"Libraries"){
+                    j2seLibraries.each{lib ->
+                        makeFile(layerXml, lib)
+                    }
                 }
             }
         }
+        File layerXmlFile = file("jme3-project-baselibs/src/com/jme3/gde/project/baselibs/layer.xml");
+        layerXmlFile.write(layerWriter.toString())
     }
-    File layerXmlFile = file("jme3-project-baselibs/src/com/jme3/gde/project/baselibs/layer.xml");
-    layerXmlFile.write(layerWriter.toString())
 }
 createProjectXml.inputs.files configurations.corelibs.resolve()
 createProjectXml.inputs.files configurations.optlibs.resolve()
 createProjectXml.outputs.dir "jme3-project-baselibs/src/com/jme3/gde/project/baselibs/"
 
-task copyTestSources <<{
-    project.configurations.examplelibs.files.each{dep ->
-        if(isSource(dep.name)){
-            copy{
-                from {
-                    zipTree(dep)
+task copyTestSources {
+    doLast {
+        project.configurations.examplelibs.files.each{dep ->
+            if(isSource(dep.name)){
+                copy{
+                    from {
+                        zipTree(dep)
+                    }
+                    into "JME3TestsTemplate/src/"
                 }
-                into "JME3TestsTemplate/src/"
-            }
-            copy{
-                from {
-                    zipTree(dep)
+                copy{
+                    from {
+                        zipTree(dep)
+                    }
+                    into "JME3TestsTemplateAndroid/src/"
                 }
-                into "JME3TestsTemplateAndroid/src/"
             }
         }
     }
@@ -537,65 +546,70 @@ ant.properties['plugins.version'] = jmeVersion
 ant.properties['app.version']= jmePomVersion
 ant.properties['nbm.revision']= jmeNbmRevision
 
-task overrideHarness(dependsOn: checkPlatformConfig) << {
-    def props = new Properties()
-    props.load(new FileInputStream("harness-override/override.properties"))
-
-    def patch_file = { f ->
-        def g = file("harness-override/" + f.getName())
-        if (!f.exists()) {
-            throw new GradleException('Cannot find targetFile: ' +  f.getAbsolutePath());
-        }
-
-        if (!g.exists()) {
-            throw new GradleException('Cannot find sourceFile: ' +  g.getAbsolutePath());
-        }
+task overrideHarness(dependsOn: checkPlatformConfig) {
+    doLast {
+        def props = new Properties()
+        props.load(new FileInputStream("$rootDir/harness-override/override.properties"))
 
-        if (getSHA256Hash(f) == props[f.getName() + ".hashAfter"]) {
-            println "> Harness file \"" + f.getName() + "\" is already patched!"
-            return; /* Already patched */
-        }
-        if (getSHA256Hash(f) == props[f.getName() + ".hashBefore"]) {
-            println "> Will patch harness file \"" + f.getName() + "\"!"
+        def patch_file = { f ->
+            def g = file("harness-override/" + f.getName())
+            if (!f.exists()) {
+                throw new GradleException('Cannot find targetFile: ' +  f.getAbsolutePath());
+            }
 
-            if (getSHA256Hash(g) != props[g.getName() + ".hashAfter"]) {
-                throw new GradleException("Dangerous Checksum Mismatch: sourceFile \"" + g.getName() + "\" doesn't equal to its hashAfter hash. This probably means someone changed this file but forgot to update said hash or someone tried to invade the SDK by spreading his exe.")
+            if (!g.exists()) {
+                throw new GradleException('Cannot find sourceFile: ' +  g.getAbsolutePath());
             }
 
-            copy {
-                from g
-                into f.getParent()
+            if (getSHA256Hash(f) == props[f.getName() + ".hashAfter"]) {
+                println "> Harness file \"" + f.getName() + "\" is already patched!"
+                return; /* Already patched */
             }
+            if (getSHA256Hash(f) == props[f.getName() + ".hashBefore"]) {
+                println "> Will patch harness file \"" + f.getName() + "\"!"
 
-        } else {
-            throw new GradleException('Checksum Mismatch: targetFile ' + f.getName() + ' has invalid hash ' + getSHA256Hash(f) +  '. Did you update Netbeans without changing harness-override/override.properties?');
-        }
-    }
+                if (getSHA256Hash(g) != props[g.getName() + ".hashAfter"]) {
+                    throw new GradleException("Dangerous Checksum Mismatch: sourceFile \"" + g.getName() + "\" doesn't equal to its hashAfter hash. This probably means someone changed this file but forgot to update said hash or someone tried to invade the SDK by spreading his exe.")
+                }
 
-    patch_file(file("netbeans/harness/launchers/app.exe"));
-    patch_file(file("netbeans/harness/launchers/app64.exe"));
-    patch_file(file("netbeans/harness/launchers/pre7_app.exe"));
+                copy {
+                    from g
+                    into f.getParent()
+                }
+
+            } else {
+                throw new GradleException('Checksum Mismatch: targetFile ' + f.getName() + ' has invalid hash ' + getSHA256Hash(f) +  '. Did you update Netbeans without changing harness-override/override.properties?');
+            }
+        }
 
+        patch_file(file("netbeans/harness/launchers/app.exe"));
+        patch_file(file("netbeans/harness/launchers/app64.exe"));
+        patch_file(file("netbeans/harness/launchers/pre7_app.exe"));
+    }
 }
 overrideHarness.outputs.files([ 'netbeans/harness/launchers/app.exe', 'netbeans/harness/launchers/app64.exe', 'netbeans/harness/launchers/pre7_app.exe'])
 overrideHarness.inputs.files([ 'netbeans/harness/launchers/app.exe', 'netbeans/harness/launchers/app64.exe', 'netbeans/harness/launchers/pre7_app.exe', 'harness-override/override.properties'])
 
-task downloadAvian() << {
-    def avianFile = file("jme3-ios/src/com/jme3/gde/ios/avian-openjdk-mac.zip")
-    
-    if (!avianFile.exists())
-    {
-        new URL('https://bintray.com/mefisto94/jme-sdk-storage/download_file?file_path=avian-openjdk-mac.zip').withInputStream{ i -> avianFile.withOutputStream{ it << i }}
+task downloadAvian() {
+    doLast {
+        def avianFile = file("jme3-ios/src/com/jme3/gde/ios/avian-openjdk-mac.zip")
+
+        if (!avianFile.exists())
+        {
+            new URL('https://bintray.com/mefisto94/jme-sdk-storage/download_file?file_path=avian-openjdk-mac.zip').withInputStream{ i -> avianFile.withOutputStream{ it << i }}
+        }
     }
 }
 
-task buildSdk(dependsOn: [copyBaseLibs, copyProjectLibs, createProjectXml, createBaseXml, copyTestSources, overrideHarness, downloadAvian]) <<{
-    ant.propertyfile(file: "nbproject/project.properties") {
-        entry( key: "plugins.version", value: "${jmeVersion}")
-        entry( key: "app.version", value: "${jmePomVersion}")
-        entry( key: "nbm.revision", value: "${jmeNbmRevision}")
+task buildSdk(dependsOn: [copyBaseLibs, copyProjectLibs, createProjectXml, createBaseXml, copyTestSources, overrideHarness, downloadAvian]) {
+    doLast {
+        ant.propertyfile(file: "nbproject/project.properties") {
+            entry( key: "plugins.version", value: "${jmeVersion}")
+            entry( key: "app.version", value: "${jmePomVersion}")
+            entry( key: "nbm.revision", value: "${jmeNbmRevision}")
+        }
+        ant.ant(dir: ".", antfile: "build.xml", target: "build")
     }
-    ant.ant(dir: ".", antfile: "build.xml", target: "build")
 }
 buildSdk.inputs.files configurations.corelibs.resolve()
 buildSdk.inputs.files configurations.optlibs.resolve()
@@ -606,21 +620,25 @@ file('.').eachDir{
 }
 buildSdk.outputs.dir "build"
 
-task run(dependsOn: buildSdk) << {
-    ant.ant(dir: ".", antfile: "build.xml", target: "run")
+task run(dependsOn: buildSdk) {
+    doLast {
+        ant.ant(dir: ".", antfile: "build.xml", target: "run")
+    }
 }
 
-task cleanSdk() <<{
-    ant.ant(dir: ".", antfile: "build.xml", target: "clean")
-    file("jme3-core-baselibs/release/").deleteDir()
-    file("jme3-core-libraries/release/").deleteDir()
-    file("jme3-core-baselibs/nbproject/project.xml").delete()
-    file("jme3-core-libraries/nbproject/project.xml").delete()
-    file("jme3-project-baselibs/release/").deleteDir()
-    file("jme3-project-libraries/release/").deleteDir()
-    file("jme3-project-testdata/release/").deleteDir()
-    file("JME3TestsTemplate/src/jme3test/").deleteDir()
-    file("JME3TestsTemplateAndroid/src/jme3test/").deleteDir()
+task cleanSdk() {
+    doLast {
+        ant.ant(dir: ".", antfile: "build.xml", target: "clean")
+        file("jme3-core-baselibs/release/").deleteDir()
+        file("jme3-core-libraries/release/").deleteDir()
+        file("jme3-core-baselibs/nbproject/project.xml").delete()
+        file("jme3-core-libraries/nbproject/project.xml").delete()
+        file("jme3-project-baselibs/release/").deleteDir()
+        file("jme3-project-libraries/release/").deleteDir()
+        file("jme3-project-testdata/release/").deleteDir()
+        file("JME3TestsTemplate/src/jme3test/").deleteDir()
+        file("JME3TestsTemplateAndroid/src/jme3test/").deleteDir()
+    }
 }
 
 task extractPlatformIndependent(type: Copy) {
@@ -657,5 +675,9 @@ task fixPlatformIndependent(dependsOn: patchPlatformIndependent, type: Zip) {
     }
 }
 
+wrapper {
+    gradleVersion = '4.10.2'
+}
+
 //jar.dependsOn(buildSdk)
 //clean.dependsOn(cleanSdk)

BIN
gradle/wrapper/gradle-wrapper.jar


+ 1 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,5 @@
-#Sat Jan 13 19:07:04 CET 2018
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-bin.zip

+ 42 - 30
gradlew

@@ -1,4 +1,4 @@
-#!/usr/bin/env bash
+#!/usr/bin/env sh
 
 ##############################################################################
 ##
@@ -6,20 +6,38 @@
 ##
 ##############################################################################
 
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
 
 APP_NAME="Gradle"
 APP_BASE_NAME=`basename "$0"`
 
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
 # Use the maximum available, or set MAX_FD != -1 to use that value.
 MAX_FD="maximum"
 
-warn ( ) {
+warn () {
     echo "$*"
 }
 
-die ( ) {
+die () {
     echo
     echo "$*"
     echo
@@ -30,6 +48,7 @@ die ( ) {
 cygwin=false
 msys=false
 darwin=false
+nonstop=false
 case "`uname`" in
   CYGWIN* )
     cygwin=true
@@ -40,26 +59,11 @@ case "`uname`" in
   MINGW* )
     msys=true
     ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
 esac
 
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
-    ls=`ls -ld "$PRG"`
-    link=`expr "$ls" : '.*-> \(.*\)$'`
-    if expr "$link" : '/.*' > /dev/null; then
-        PRG="$link"
-    else
-        PRG=`dirname "$PRG"`"/$link"
-    fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
 CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
 
 # Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@ location of your Java installation."
 fi
 
 # Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
     MAX_FD_LIMIT=`ulimit -H -n`
     if [ $? -eq 0 ] ; then
         if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
@@ -150,11 +154,19 @@ if $cygwin ; then
     esac
 fi
 
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
-    JVM_OPTS=("$@")
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
 }
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
 
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
+exec "$JAVACMD" "$@"

+ 3 - 9
gradlew.bat

@@ -8,14 +8,14 @@
 @rem Set local scope for the variables with windows NT shell
 if "%OS%"=="Windows_NT" setlocal
 
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
 set DIRNAME=%~dp0
 if "%DIRNAME%" == "" set DIRNAME=.
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
 @rem Find java.exe
 if defined JAVA_HOME goto findJavaFromJavaHome
 
@@ -49,7 +49,6 @@ goto fail
 @rem Get command-line arguments, handling Windows variants
 
 if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
 
 :win9xME_args
 @rem Slurp the command line arguments.
@@ -60,11 +59,6 @@ set _SKIP=2
 if "x%~1" == "x" goto execute
 
 set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
 
 :execute
 @rem Setup the command line