Browse Source

Made stand alone build

Rémy Bouquet 9 years ago
parent
commit
35da68e36b
2 changed files with 228 additions and 115 deletions
  1. 185 115
      build.gradle
  2. 43 0
      gradle.properties

+ 185 - 115
build.gradle

@@ -2,10 +2,27 @@
 import groovy.xml.MarkupBuilder
 import groovy.xml.MarkupBuilder
 import java.util.zip.ZipFile
 import java.util.zip.ZipFile
 
 
+
 if (!hasProperty('mainClass')) {
 if (!hasProperty('mainClass')) {
     ext.mainClass = ''
     ext.mainClass = ''
 }
 }
 
 
+repositories {
+    jcenter {
+        url "http://jcenter.bintray.com/"
+    }
+    maven {
+        url "http://updates.jmonkeyengine.org/maven/"
+    }
+    maven {
+        url 'http://nifty-gui.sourceforge.net/nifty-maven-repo/'
+    }
+
+}
+
+ext.jmeFullVersion = "3.1.0-SNAPSHOT"
+ext.jmeNbmRevision = 0
+
 configurations {
 configurations {
     corelibs
     corelibs
     optlibs
     optlibs
@@ -14,31 +31,48 @@ configurations {
 }
 }
 
 
 dependencies {
 dependencies {
-    corelibs project(':jme3-blender')
-    corelibs project(':jme3-core')
-    corelibs project(':jme3-desktop')
-    corelibs project(':jme3-effects')
-    corelibs project(':jme3-jbullet')
-    corelibs project(':jme3-jogg')
-    corelibs project(':jme3-lwjgl')
-    corelibs project(':jme3-networking')
-    corelibs project(':jme3-niftygui')
-    corelibs project(':jme3-plugins')
-    corelibs project(':jme3-terrain')
-
-    optlibs project(':jme3-bullet')
-    optlibs project(':jme3-jogl')
-    optlibs project(':jme3-android')
-    optlibs project(':jme3-ios')
-    optlibs project(':jme3-android-native')
-    optlibs project(':jme3-bullet-native')
-    optlibs project(':jme3-bullet-native-android')
-    testdatalibs project(':jme3-testdata')
-
-    examplelibs project(':jme3-examples')
+
+    corelibs dep("org.jmonkeyengine:jme3-core:$jmeFullVersion",true,true)
+    corelibs dep("org.jmonkeyengine:jme3-desktop:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-lwjgl:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-effects:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-blender:$jmeFullVersion", true, true)
+
+    corelibs dep("org.jmonkeyengine:jme3-jbullet:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-jogg:$jmeFullVersion", true, true)
+
+    corelibs dep("org.jmonkeyengine:jme3-networking:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-niftygui:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-plugins:$jmeFullVersion", true, true)
+    corelibs dep("org.jmonkeyengine:jme3-terrain:$jmeFullVersion", true, true)
+
+    optlibs dep("org.jmonkeyengine:jme3-bullet:$jmeFullVersion", true, true)
+    optlibs dep("org.jmonkeyengine:jme3-jogl:$jmeFullVersion", true, true)
+    optlibs dep("org.jmonkeyengine:jme3-android:$jmeFullVersion", true, true)
+    optlibs dep("org.jmonkeyengine:jme3-ios:$jmeFullVersion", true, true)
+    optlibs dep("org.jmonkeyengine:jme3-android-native:$jmeFullVersion", true, true)
+    optlibs dep("org.jmonkeyengine:jme3-bullet-native:$jmeFullVersion", true, true)
+    optlibs dep("org.jmonkeyengine:jme3-bullet-native-android:$jmeFullVersion", true, true)
+    testdatalibs dep("org.jmonkeyengine:jme3-testdata:$jmeFullVersion", false, false)
+
+    examplelibs dep("org.jmonkeyengine:jme3-examples:$jmeFullVersion", false, true)
+
+}
+
+def dep(coords, javadoc = false, sources = false) {
+
+    def result = [dependencies.create(coords)]
+
+    if (javadoc) result << dependencies.create("$coords:javadoc")
+
+    if (sources) result << dependencies.create("$coords:sources")
+
+    result
 
 
 }
 }
 
 
+
+
 artifacts {
 artifacts {
     //    jar null
     //    jar null
 }
 }
@@ -70,29 +104,45 @@ task copyBaseLibs(dependsOn:configurations.corelibs) <<{
                 "jme3-core-baselibs and jme3-core-libraries"
                 "jme3-core-baselibs and jme3-core-libraries"
 
 
     // for each dependency in corelibs..
     // for each dependency in corelibs..
-    project.configurations.corelibs.dependencies.each {dep ->
+    //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
         // copy built jme3 jar files to jme3-core-baselibs
-        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
-            if(artifact.classifier == "sources"){
-            } else if(artifact.classifier == "javadoc"){
-            } else{
-                copy {
-                    from artifact.file
-                    into "jme3-core-baselibs/release/modules/ext/"
-                }
+        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/"
             }
             }
-        }
-        // copy external jar files to jme3-core-libraries
-        copy {
-            from dep.dependencyProject.configurations.compile.copyRecursive({ !(it instanceof ProjectDependency); }).resolve()
-            into "jme3-core-libraries/release/modules/ext/"
         }
         }
     }
     }
+    
 }
 }
+
 copyBaseLibs.inputs.files configurations.corelibs.resolve()
 copyBaseLibs.inputs.files configurations.corelibs.resolve()
 copyBaseLibs.outputs.dir "jme3-core-baselibs/release/modules/ext/"
 copyBaseLibs.outputs.dir "jme3-core-baselibs/release/modules/ext/"
 copyBaseLibs.outputs.dir "jme3-core-libraries/release/modules/ext/"
 copyBaseLibs.outputs.dir "jme3-core-libraries/release/modules/ext/"
 
 
+def isSourceOrJavadoc(dep){
+    return isSource(dep) || isJavadoc(dep)
+}
+
+def isSource(dep){
+    return dep.endsWith("-sources.jar")
+}
+
+def isJavadoc(dep){
+    return dep.endsWith("-javadoc.jar")
+}
+def isJmeDep(dep) {
+    return dep.startsWith("jme3-")
+}
+
 task createBaseXml(dependsOn: configurations.corelibs) <<{
 task createBaseXml(dependsOn: configurations.corelibs) <<{
     description "Creates the project.xml files for "+
     description "Creates the project.xml files for "+
                 "jme3-core-baselibs and jme3-core-libraries"
                 "jme3-core-baselibs and jme3-core-libraries"
@@ -100,24 +150,23 @@ task createBaseXml(dependsOn: configurations.corelibs) <<{
     def externalJarFiles = [] // external jar files
     def externalJarFiles = [] // external jar files
 
 
     // collect jar files
     // collect jar files
-    project.configurations.corelibs.dependencies.each {dep ->
-        // collect external jar files
-        dep.dependencyProject.configurations.compile.copyRecursive({ !(it instanceof ProjectDependency); }).resolve().each{ file->
-            externalJarFiles.add(file)
-        }
-        // collect internal jar files (classes, sources and javadoc)
-        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
-            if(artifact.classifier == "sources"){
-            } else if(artifact.classifier == "javadoc"){
-            } else if(artifact.file.name.endsWith('.pom')) {
-            } else{
-                if(!jmeJarFiles.contains(artifact.file)){
-                    jmeJarFiles.add(artifact.file)
-                }
+    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)
+            
         }
         }
-    }
 
 
+    }
+  
     // collect base packages
     // collect base packages
     def packages = []
     def packages = []
     jmeJarFiles.each{jarFile ->
     jmeJarFiles.each{jarFile ->
@@ -226,46 +275,42 @@ task copyProjectLibs(dependsOn: [configurations.corelibs, configurations.testdat
 
 
     // for each dependency in corelibs and optlibs..
     // for each dependency in corelibs and optlibs..
     def deps = []
     def deps = []
-    deps.addAll(project.configurations.corelibs.dependencies)
-    deps.addAll(project.configurations.optlibs.dependencies)
+    deps.addAll(project.configurations.corelibs.files)
+    deps.addAll(project.configurations.optlibs.files)
     deps.each {dep ->
     deps.each {dep ->
         // copy jme3 jar files, sources and javadocs to jme3-project-baselibs
         // copy jme3 jar files, sources and javadocs to jme3-project-baselibs
-        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
-            if(artifact.classifier == "sources"){
-                copy {
-                    from artifact.file
-                    into "jme3-project-baselibs/release/libs/"
-                }
-            } else if(artifact.classifier == "javadoc"){
-                copy {
-                    from artifact.file
-                    into "jme3-project-baselibs/release/libs/"
-                }
-            } else{
-                copy {
-                    from artifact.file
-                    into "jme3-project-baselibs/release/libs/"
-                }
+        
+        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/"
             }
             }
         }
         }
-        // copy external jar files to jme3-project-libraries
-        copy {
-            from dep.dependencyProject.configurations.compile.copyRecursive({ !(it instanceof ProjectDependency); }).resolve()
-            into "jme3-project-libraries/release/libs/"
-        }
+       
     }
     }
 
 
-    project.configurations.testdatalibs.dependencies.each {dep ->
+    project.configurations.testdatalibs.files.each {dep ->
         // copy jme3 test data to jme3-project-testdata
         // copy jme3 test data to jme3-project-testdata
-        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
-            if(artifact.classifier == "sources"){
-            } else if(artifact.classifier == "javadoc"){
-            } else{
-                copy {
-                    from artifact.file
-                    into "jme3-project-testdata/release/libs/"
-                    rename ("jme3-testdata(.*)", "jme3-testdata.jar")
-                }
+        if(isJmeDep(dep.name)){
+            copy {
+                from dep
+                into "jme3-project-testdata/release/libs/"
+                rename ("jme3-testdata(.*)", "jme3-testdata.jar")
             }
             }
         }
         }
     }
     }
@@ -287,6 +332,8 @@ task createProjectXml(dependsOn: configurations.corelibs) <<{
     def eol = System.properties.'line.separator'
     def eol = System.properties.'line.separator'
     def j2seLibraries = [] // created J2SE library descriptors
     def j2seLibraries = [] // created J2SE library descriptors
 
 
+    
+   
     // for each dependency in corelibs..
     // for each dependency in corelibs..
     def deps = []
     def deps = []
     deps.addAll(project.configurations.corelibs.dependencies)
     deps.addAll(project.configurations.corelibs.dependencies)
@@ -296,23 +343,40 @@ task createProjectXml(dependsOn: configurations.corelibs) <<{
         def jmeSourceFiles = [] // jme3 sources
         def jmeSourceFiles = [] // jme3 sources
         def jmeJavadocFiles = [] // jme3 javadoc
         def jmeJavadocFiles = [] // jme3 javadoc
         def externalJarFiles = [] // external jar files
         def externalJarFiles = [] // external jar files
-        j2seLibraries.add(dep.dependencyProject.name+".xml")
-        // collect external jar files
-        dep.dependencyProject.configurations.compile.copyRecursive({ !(it instanceof ProjectDependency); }).resolve().each{ file->
-            externalJarFiles.add(file.name)
+        if(j2seLibraries.contains(dep.name+".xml")){
+            return;
         }
         }
-        // collect internal jar files (classes, sources and javadoc)
-        dep.dependencyProject.configurations.archives.allArtifacts.each{ artifact->
-            if(artifact.classifier == "sources"){
-                jmeSourceFiles.add(artifact.file.name)
-            } else if(artifact.classifier == "javadoc"){
-                jmeJavadocFiles.add(artifact.file.name)
-            } else{
-                if(!jmeJarFiles.contains(artifact.file.name)){
-                    jmeJarFiles.add(artifact.file.name)
+        j2seLibraries.add(dep.name+".xml")
+        println("--------------"+dep.name+"-----------")
+        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)
+                    println("adding jar")
+                }
+            }else{
+                if(!externalJarFiles.contains(file.name)){
+                    externalJarFiles.add(file.name)
                 }
                 }
             }
             }
         }
         }
+        
+
+        println("sources : " + jmeSourceFiles);
+        println("javadoc : " + jmeJavadocFiles);
+        println("jars : " + jmeJarFiles);
+        println("external : " + externalJarFiles);
+
+        
+        
         // create J2SE library descriptor xml file
         // create J2SE library descriptor xml file
         def libraryWriter = new StringWriter()
         def libraryWriter = new StringWriter()
         def libraryXml = new MarkupBuilder(libraryWriter)
         def libraryXml = new MarkupBuilder(libraryWriter)
@@ -320,14 +384,14 @@ task createProjectXml(dependsOn: configurations.corelibs) <<{
         libraryWriter << '<?xml version="1.0" encoding="UTF-8"?>' << eol
         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
         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"){
         libraryXml.library(version:"1.0", encoding: "UTF-8"){
-            makeName(libraryXml, "${dep.dependencyProject.name}")
+            makeName(libraryXml, "${dep.name}")
             type "j2se"
             type "j2se"
             "localizing-bundle" "com.jme3.gde.project.baselibs.Bundle"
             "localizing-bundle" "com.jme3.gde.project.baselibs.Bundle"
             volume{
             volume{
                 type "classpath"
                 type "classpath"
-                jmeJarFiles.each{jar ->
-                    resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jar}!/"
-                }
+                
+                resource "jar:nbinst://com.jme3.gde.project.baselibs/libs/${jmeJarFiles[0]}!/"
+                
                 externalJarFiles.each{jar ->
                 externalJarFiles.each{jar ->
                     resource "jar:nbinst://com.jme3.gde.project.libraries/libs/${jar}!/"
                     resource "jar:nbinst://com.jme3.gde.project.libraries/libs/${jar}!/"
                 }
                 }
@@ -346,7 +410,7 @@ task createProjectXml(dependsOn: configurations.corelibs) <<{
             }
             }
         }
         }
         // write XML file
         // write XML file
-        File libraryXmlFile = file("jme3-project-baselibs/src/com/jme3/gde/project/baselibs/${dep.dependencyProject.name}.xml");
+        File libraryXmlFile = file("jme3-project-baselibs/src/com/jme3/gde/project/baselibs/${dep.name}.xml");
         libraryXmlFile.write(libraryWriter.toString())
         libraryXmlFile.write(libraryWriter.toString())
     }
     }
 
 
@@ -373,14 +437,20 @@ createProjectXml.inputs.files configurations.optlibs.resolve()
 createProjectXml.outputs.dir "jme3-project-baselibs/src/com/jme3/gde/project/baselibs/"
 createProjectXml.outputs.dir "jme3-project-baselibs/src/com/jme3/gde/project/baselibs/"
 
 
 task copyTestSources <<{
 task copyTestSources <<{
-    project.configurations.examplelibs.dependencies.each{dep ->
-        copy{
-            from dep.dependencyProject.sourceSets*.allSource
-            into "JME3TestsTemplate/src/"
-        }
-        copy{
-            from dep.dependencyProject.sourceSets*.allSource
-            into "JME3TestsTemplateAndroid/src/"
+    project.configurations.examplelibs.files.each{dep ->
+        if(isSource(dep.name)){
+            copy{
+                from {
+                    zipTree(dep)
+                }
+                into "JME3TestsTemplate/src/"
+            }
+            copy{
+                from {
+                    zipTree(dep)
+                }
+                into "JME3TestsTemplateAndroid/src/"
+            }
         }
         }
     }
     }
 }
 }
@@ -415,11 +485,11 @@ task cleanSdk() <<{
     file("jme3-core-libraries/release/").deleteDir()
     file("jme3-core-libraries/release/").deleteDir()
     file("jme3-project-baselibs/release/").deleteDir()
     file("jme3-project-baselibs/release/").deleteDir()
     file("jme3-project-libraries/release/").deleteDir()
     file("jme3-project-libraries/release/").deleteDir()
-    file("JME3TestsTemplate/src/jmetest/").deleteDir()
-    file("JME3TestsTemplateAndroid/src/jmetest/").deleteDir()
+    file("jme3-project-testdata/release/").deleteDir()
+    file("JME3TestsTemplate/src/jme3test/").deleteDir()
+    file("JME3TestsTemplateAndroid/src/jme3test/").deleteDir()
 }
 }
 
 
-tasks.remove(uploadArchives)
 
 
-jar.dependsOn(buildSdk)
-clean.dependsOn(cleanSdk)
+//jar.dependsOn(buildSdk)
+//clean.dependsOn(cleanSdk)

+ 43 - 0
gradle.properties

@@ -0,0 +1,43 @@
+# Version number used for plugins, only 3 numbers (e.g. 3.1.3)
+jmeVersion = 3.1.0
+# Version used for application and settings folder, no spaces!
+jmeMainVersion = 3.1
+# Version addition pre-alpha-svn, Stable, Beta
+jmeVersionTag = SNAPSHOT
+# Increment this each time jmeVersionTag changes but jmeVersion stays the same
+jmeVersionTagID = 0
+
+# specify if JavaDoc should be built
+buildJavaDoc = true
+
+# specify if SDK and Native libraries get built
+buildSdkProject = true
+buildNativeProjects = false
+buildAndroidExamples = false
+
+# Path to android NDK for building native libraries
+#ndkPath=/Users/normenhansen/Documents/Code-Import/android-ndk-r7
+ndkPath = /opt/android-ndk-r10c
+
+# Path for downloading native Bullet
+bulletUrl = http://bullet.googlecode.com/files/bullet-2.82-r2704.zip
+bulletFolder = bullet-2.82-r2704
+bulletZipFile = bullet.zip
+
+# Path for downloading NetBeans Base
+netbeansUrl = http://download.netbeans.org/netbeans/8.0.2/final/zip/netbeans-8.0.2-201411181905-javase.zip
+
+# POM settings
+POM_NAME=jMonkeyEngine
+POM_DESCRIPTION=jMonkeyEngine is a 3D game engine for adventurous Java developers
+POM_URL=http://jmonkeyengine.org
+POM_SCM_URL=https://github.com/jMonkeyEngine/jmonkeyengine
+POM_SCM_CONNECTION=scm:git:git://github.com/jMonkeyEngine/jmonkeyengine.git
+POM_SCM_DEVELOPER_CONNECTION=scm:git:[email protected]:jMonkeyEngine/jmonkeyengine.git
+POM_LICENSE_NAME=New BSD (3-clause) License
+POM_LICENSE_URL=http://opensource.org/licenses/BSD-3-Clause
+POM_LICENSE_DISTRIBUTION=repo
+
+# Bintray settings to override in $HOME/.gradle/gradle.properties or ENV or commandline
+bintray_user=
+bintray_api_key=