diff --git a/.gitignore b/.gitignore index c3a69f041..5e8525130 100644 --- a/.gitignore +++ b/.gitignore @@ -14,10 +14,12 @@ *.jnilib *.dylib *.iml +.gradletasknamecache .DS_Store /jme3-core/src/main/resources/com/jme3/system/version.properties /jme3-*/build/ /jme3-bullet-native/bullet.zip +/jme3-bullet-native/bullet3.zip /jme3-bullet-native/bullet-2.82-r2704/ /jme3-bullet-native/bullet3-2.83.7/ /jme3-android-native/openal-soft/ diff --git a/.travis.yml b/.travis.yml index 949b9378d..1ca4b714c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,50 @@ language: java sudo: false -jdk: - - oraclejdk8 +branches: + only: + - master + - v3.1 + +matrix: + include: + # - os: linux + # jdk: oraclejdk8 + # env: UPLOAD=true UPLOAD_NATIVE=true + # - os: linux + # jdk: openjdk7 + - os: osx + env: UPLOAD_NATIVE=true addons: - ssh_known_hosts: updates.jmonkeyengine.org + ssh_known_hosts: github.com + apt: + packages: + - gcc-multilib + - g++-multilib + +before_install: + - '[ -n "$UPLOAD" ] && git fetch --unshallow || :' before_cache: - - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock - + - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock + - rm -fr $HOME/.gradle/caches/*/plugin-resolution/ + cache: directories: - $HOME/.gradle/caches/ - $HOME/.gradle/wrapper/ +install: + - '[ -n "$UPLOAD_NATIVE" ] && ./gradlew -PbuildNativeProjects=true assemble || ./gradlew assemble' + +script: + - ./gradlew check + +after_success: + - '[ "$TRAVIS_PULL_REQUEST" == "false" ] && [ -n "$UPLOAD_NATIVE" ] && ./private/upload_native.sh || :' + - '[ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ -n "$UPLOAD" ] && ./gradlew bintrayUpload || :' + notifications: slack: on_success: change @@ -22,12 +52,6 @@ notifications: rooms: secure: "PWEk4+VL986c3gAjWp12nqyifvxCjBqKoESG9d7zWh1uiTLadTHhZJRMdsye36FCpz/c/Jt7zCRO/5y7FaubQptnRrkrRfjp5f99MJRzQVXnUAM+y385qVkXKRKd/PLpM7XPm4AvjvxHCyvzX2wamRvul/TekaXKB9Ti5FCN87s=" -install: - - ./gradlew assemble - -script: - - ./gradlew check - before_deploy: - ./gradlew createZipDistribution - export RELEASE_DIST=$(ls build/distributions/*.zip) @@ -43,9 +67,6 @@ deploy: repo: jMonkeyEngine/jmonkeyengine tags: true -before_install: - - git fetch --unshallow - - "[ $TRAVIS_PULL_REQUEST == 'false' ] && openssl aes-256-cbc -K $encrypted_a1949b55824a_key -iv $encrypted_a1949b55824a_iv -in private/www-updater.key.enc -out private/www-updater.key -d || :" # before_install: # required libs for android build tools @@ -57,6 +78,4 @@ before_install: # 7z x ndk.bin -y > /dev/null # export ANDROID_NDK=`pwd`/android-ndk-r10c -after_success: - - '[ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew uploadArchives || :' - - '[ -n "$TRAVIS_TAG" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && ./gradlew uploadArchives bintrayUpload || :' + diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 000000000..7c8340356 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,51 @@ +version: 1.0.{build}.{branch} + +branches: + only: + - master + +only_commits: + files: + - jme3-bullet-native/ + +skip_tags: true + +max_jobs: 1 + +clone_depth: 1 + +image: Visual Studio 2013 + +environment: + encrypted_f0a0b284e2e8_iv: + secure: aImQXs4g7zMXm1nWRvlh2wPK1UQvozS1fOVNthpyoEDFZ2FvBSdXqh5NPbGh44+F + encrypted_f0a0b284e2e8_key: + secure: Ek2lqC2e19qQDRRdlvnYyLFBq3TNj6YwKTAPuJ2VElJsxi9lQg+9ZP+VbP4kbHTx6Zaa++vtmOuxLZL7gdILrEEPa1Jix2BBLBfcxBUxe6w= + +install: + - cmd: del C:\Users\appveyor\.gradle\caches\modules-2\modules-2.lock + +build_script: + - cmd: gradlew.bat -PbuildNativeProjects=true :jme3-bullet-native:assemble + +cache: +- C:\Users\appveyor\.gradle\caches +- C:\Users\appveyor\.gradle\wrapper +- jme3-bullet-native\bullet3.zip + +test: off +deploy: off + +on_success: +- cmd: >- + openssl aes-256-cbc -K %encrypted_f0a0b284e2e8_key% -iv %encrypted_f0a0b284e2e8_iv% -in private\key.enc -out c:\users\appveyor\.ssh\id_rsa -d + + git checkout -q %APPVEYOR_REPO_BRANCH% + + git add -- jme3-bullet-native/libs/native/windows/ + + git commit -m "[ci skip] bullet: update windows natives" + + git pull -q --rebase + + git push git@github.com:jMonkeyEngine/jmonkeyengine.git diff --git a/build.gradle b/build.gradle index 3711ffe41..e1af45a55 100644 --- a/build.gradle +++ b/build.gradle @@ -29,31 +29,32 @@ task run(dependsOn: ':jme3-examples:run') { defaultTasks 'run' -task libDist(dependsOn: subprojects.build) << { -// description 'Builds and copies the engine binaries, sources and javadoc to build/libDist' - File libFolder = mkdir("$buildDir/libDist/lib") - File sourceFolder = mkdir("$buildDir/libDist/sources") - File javadocFolder = mkdir("$buildDir/libDist/javadoc") - subprojects.each {project -> - if(project.ext.mainClass == ''){ - project.tasks.withType(Jar).each {archiveTask -> - if(archiveTask.classifier == "sources"){ - copy { - from archiveTask.archivePath - into sourceFolder - rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} - } - } else if(archiveTask.classifier == "javadoc"){ - copy { - from archiveTask.archivePath - into javadocFolder - rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} - } - } else{ - copy { - from archiveTask.archivePath - into libFolder - rename {project.name + '.' + archiveTask.extension} +task libDist(dependsOn: subprojects.build, description: 'Builds and copies the engine binaries, sources and javadoc to build/libDist') { + doLast { + File libFolder = mkdir("$buildDir/libDist/lib") + File sourceFolder = mkdir("$buildDir/libDist/sources") + File javadocFolder = mkdir("$buildDir/libDist/javadoc") + subprojects.each {project -> + if(project.ext.mainClass == ''){ + project.tasks.withType(Jar).each {archiveTask -> + if(archiveTask.classifier == "sources"){ + copy { + from archiveTask.archivePath + into sourceFolder + rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} + } + } else if(archiveTask.classifier == "javadoc"){ + copy { + from archiveTask.archivePath + into javadocFolder + rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension} + } + } else{ + copy { + from archiveTask.archivePath + into libFolder + rename {project.name + '.' + archiveTask.extension} + } } } } @@ -115,7 +116,7 @@ task mergedSource(type: Copy){ } task wrapper(type: Wrapper, description: 'Creates and deploys the Gradle wrapper to the current directory.') { - gradleVersion = '2.13' + gradleVersion = '3.2.1' } ext { diff --git a/common.gradle b/common.gradle index 2b34f1046..d15f1c582 100644 --- a/common.gradle +++ b/common.gradle @@ -18,16 +18,11 @@ repositories { } } -configurations { - deployerJars -} - dependencies { // Adding dependencies here will add the dependencies to each subproject. testCompile group: 'junit', name: 'junit', version: '4.12' testCompile group: 'org.mockito', name: 'mockito-core', version: '2.0.28-beta' testCompile group: 'org.easytesting', name: 'fest-assert-core', version: '2.0M10' - deployerJars "org.apache.maven.wagon:wagon-ssh:2.9" } jar { @@ -116,17 +111,3 @@ artifacts { archives writeFullPom.outputs.files[0] } -uploadArchives { - repositories.mavenDeployer { - configuration = configurations.deployerJars - - // disable this otherwise it will fill up the server with stale jars - uniqueVersion = false - - repository(url: "scp://updates.jmonkeyengine.org/var/www/updates/maven") { - authentication(userName: "www-updater", privateKey: "private/www-updater.key") - } - - pom.project pomConfig - } -} \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index dc9c10058..e8e1fc8f1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ jmeVersionTag = SNAPSHOT jmeVersionTagID = 0 # specify if JavaDoc should be built -buildJavaDoc = true +buildJavaDoc = false # specify if SDK and Native libraries get built buildNativeProjects = false @@ -21,10 +21,7 @@ ndkPath = /opt/android-ndk-r10c # Path for downloading native Bullet bulletUrl = https://github.com/bulletphysics/bullet3/archive/2.83.7.zip bulletFolder = bullet3-2.83.7 -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 +bulletZipFile = bullet3.zip # POM settings POM_NAME=jMonkeyEngine diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 4a13cd639..e89f72e3d 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat Apr 30 16:44:31 EDT 2016 +#Fri Nov 25 13:05:50 EST 2016 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-3.2.1-bin.zip diff --git a/jme3-bullet-native-android/build.gradle b/jme3-bullet-native-android/build.gradle index 958d2b094..499330a9e 100644 --- a/jme3-bullet-native-android/build.gradle +++ b/jme3-bullet-native-android/build.gradle @@ -50,6 +50,7 @@ task unzipBullet(type: Copy) { from zipTree(zipFile) into outputDir } + unzipBullet.dependsOn { def zipFile = file(localZipFile) // println "zipFile path: " + zipFile.absolutePath @@ -70,6 +71,7 @@ task copyBullet(type: Copy) { from sourceDir into outputDir } + copyBullet.dependsOn { def bulletUnzipDir = file(localZipFolder) // println "bulletUnzipDir: " + bulletUnzipDir.absolutePath @@ -81,7 +83,7 @@ copyBullet.dependsOn { } // Copy jME cpp native files to jni directory -task copyJmeCpp(type: Copy, dependsOn:copyBullet) { +task copyJmeCpp(type: Copy) { def sourceDir = new File(jmeCppPath) def outputDir = new File(jniPath) // println "copyJmeCpp sourceDir = " + sourceDir @@ -92,7 +94,7 @@ task copyJmeCpp(type: Copy, dependsOn:copyBullet) { } // Copy jME android native files to jni directory -task copyJmeAndroid(type: Copy, dependsOn:copyJmeCpp) { +task copyJmeAndroid(type: Copy) { def sourceDir = new File(jmeAndroidPath) def outputDir = new File(jniPath) // println "copyJmeAndroid sourceDir = " + sourceDir @@ -102,60 +104,7 @@ task copyJmeAndroid(type: Copy, dependsOn:copyJmeCpp) { into outputDir } -task generateNativeHeaders(dependsOn: copyJmeAndroid) << { - String destDirPath = jniPath - String classes = " \ - com.jme3.bullet.PhysicsSpace, \ - \ - com.jme3.bullet.collision.PhysicsCollisionEvent, \ - com.jme3.bullet.collision.PhysicsCollisionObject,\ - com.jme3.bullet.objects.PhysicsCharacter, \ - com.jme3.bullet.objects.PhysicsGhostObject, \ - com.jme3.bullet.objects.PhysicsRigidBody, \ - com.jme3.bullet.objects.PhysicsVehicle, \ - com.jme3.bullet.objects.VehicleWheel, \ - com.jme3.bullet.objects.infos.RigidBodyMotionState, \ - \ - com.jme3.bullet.collision.shapes.CollisionShape, \ - com.jme3.bullet.collision.shapes.BoxCollisionShape, \ - com.jme3.bullet.collision.shapes.CapsuleCollisionShape, \ - com.jme3.bullet.collision.shapes.CompoundCollisionShape, \ - com.jme3.bullet.collision.shapes.ConeCollisionShape, \ - com.jme3.bullet.collision.shapes.CylinderCollisionShape, \ - com.jme3.bullet.collision.shapes.GImpactCollisionShape, \ - com.jme3.bullet.collision.shapes.HeightfieldCollisionShape, \ - com.jme3.bullet.collision.shapes.HullCollisionShape, \ - com.jme3.bullet.collision.shapes.MeshCollisionShape, \ - com.jme3.bullet.collision.shapes.PlaneCollisionShape, \ - com.jme3.bullet.collision.shapes.SimplexCollisionShape, \ - com.jme3.bullet.collision.shapes.SphereCollisionShape, \ - \ - com.jme3.bullet.joints.PhysicsJoint, \ - com.jme3.bullet.joints.ConeJoint, \ - com.jme3.bullet.joints.HingeJoint, \ - com.jme3.bullet.joints.Point2PointJoint, \ - com.jme3.bullet.joints.SixDofJoint, \ - com.jme3.bullet.joints.SixDofSpringJoint, \ - com.jme3.bullet.joints.SliderJoint, \ - com.jme3.bullet.joints.motors.RotationalLimitMotor, \ - com.jme3.bullet.joints.motors.TranslationalLimitMotor, \ - \ - com.jme3.bullet.util.NativeMeshUtil, \ - com.jme3.bullet.util.DebugShapeFactory" - - String projectClassPath = configurations.runtime.asFileTree.matching { - exclude ".gradle" - }.asPath - - exec { - executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') - args '-d', destDirPath - args '-classpath', projectClassPath - args classes.split(",").collect { it.trim() } - } -} - -task buildBulletNativeLib(type: Exec, dependsOn: generateNativeHeaders) { +task buildBulletNativeLib(type: Exec, dependsOn: [copyJmeAndroid, copyJmeCpp, copyBullet]) { // args 'TARGET_PLATFORM=android-9' // println "buildBulletNativeLib ndkWorkingPath: " + ndkWorkingPath // println "buildBulletNativeLib rootProject.ndkCommandPath: " + rootProject.ndkCommandPath diff --git a/jme3-bullet-native/build.gradle b/jme3-bullet-native/build.gradle index cf42e17f6..b94769943 100644 --- a/jme3-bullet-native/build.gradle +++ b/jme3-bullet-native/build.gradle @@ -40,7 +40,7 @@ model { } } } - + binaries { withType(SharedLibraryBinarySpec) { def projectPath = project.projectDir.absolutePath @@ -48,10 +48,10 @@ model { def os = targetPlatform.operatingSystem.name def arch = targetPlatform.architecture.name def fileName = sharedLibraryFile.name - + // Gradle decided to change underscores to dashes - fix that. arch = arch.replaceAll('-', '_') - + // For all binaries that can't be built on the current system if (buildNativeProjects != "true") { buildable = false @@ -114,14 +114,14 @@ model { } cppCompiler.define('WIN32') } - + tasks.all { dependsOn unzipBulletIfNeeded } // Add output to jar file jar.into("native/${os}/${arch}") { from sharedLibraryFile } - + // Add depend on build jar.dependsOn tasks // Add output to libs folder @@ -163,31 +163,6 @@ model { operatingSystem "linux" } } - - toolChains { - gcc(Gcc) - clang(Clang) - mingw_x86(Gcc) { - eachPlatform() { - cCompiler.executable "i686-w64-mingw32-gcc" - cppCompiler.executable "i686-w64-mingw32-g++" - linker.executable "i686-w64-mingw32-g++" - assembler.executable "i686-w64-mingw32-g++" - staticLibArchiver.executable "i686-w64-mingw32-gcc-ar" - } - target("Windows32") - } - mingw_x86_64(Gcc) { - eachPlatform() { - cCompiler.executable "x86_64-w64-mingw32-gcc" - cppCompiler.executable "x86_64-w64-mingw32-g++" - linker.executable "x86_64-w64-mingw32-g++" - assembler.executable "x86_64-w64-mingw32-g++" - staticLibArchiver.executable "x86_64-w64-mingw32-gcc-ar" - } - target("Windows64") - } - } } // Java source sets for IDE access and source jar bundling / mavenization @@ -215,7 +190,7 @@ unzipBullet.dependsOn { } } -task unzipBulletIfNeeded << { +task unzipBulletIfNeeded { } unzipBulletIfNeeded.dependsOn { diff --git a/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so b/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so index 7c3bc7c69..e7a9d22c0 100755 Binary files a/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so and b/jme3-bullet-native/libs/native/linux/x86/libbulletjme.so differ diff --git a/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so b/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so index b269c5517..4ceb1e318 100755 Binary files a/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so and b/jme3-bullet-native/libs/native/linux/x86_64/libbulletjme.so differ diff --git a/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib b/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib index 747634c91..6a16cc6a3 100755 Binary files a/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib and b/jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib differ diff --git a/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib b/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib index 82862ad5e..75dd1c856 100755 Binary files a/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib and b/jme3-bullet-native/libs/native/osx/x86_64/libbulletjme.dylib differ diff --git a/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll b/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll index 15fa750c2..56eaecc48 100755 Binary files a/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll and b/jme3-bullet-native/libs/native/windows/x86/bulletjme.dll differ diff --git a/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll b/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll index d33cc154a..4b2da699e 100755 Binary files a/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll and b/jme3-bullet-native/libs/native/windows/x86_64/bulletjme.dll differ diff --git a/jme3-bullet-native/src/native/cpp/com_jme3_bullet_PhysicsSpace.h b/jme3-bullet-native/src/native/cpp/com_jme3_bullet_PhysicsSpace.h index 0380c17b0..b7b932df9 100644 --- a/jme3-bullet-native/src/native/cpp/com_jme3_bullet_PhysicsSpace.h +++ b/jme3-bullet-native/src/native/cpp/com_jme3_bullet_PhysicsSpace.h @@ -144,11 +144,27 @@ JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_setGravity /* * Class: com_jme3_bullet_PhysicsSpace * Method: rayTest_native - * Signature: (Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;JLjava/util/List;)V + * Signature: (Lcom/jme3/math/Vector3f;Lcom/jme3/math/Vector3f;JLjava/util/List;I)V */ JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_rayTest_1native (JNIEnv *, jobject, jobject, jobject, jlong, jobject, jint); +/* + * Class: com_jme3_bullet_PhysicsSpace + * Method: sweepTest_native + * Signature: (JLcom/jme3/math/Transform;Lcom/jme3/math/Transform;JLjava/util/List;F)V + */ +JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_sweepTest_1native + (JNIEnv *, jobject, jlong, jobject, jobject, jlong, jobject, jfloat); + +/* + * Class: com_jme3_bullet_PhysicsSpace + * Method: setSolverNumIterations + * Signature: (JI)V + */ +JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_setSolverNumIterations + (JNIEnv *, jobject, jlong, jint); + /* * Class: com_jme3_bullet_PhysicsSpace * Method: initNativePhysics @@ -165,23 +181,6 @@ JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_initNativePhysics JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_finalizeNative (JNIEnv *, jobject, jlong); - -/* -* Class: com_jme3_bullet_PhysicsSpace -* Method : sweepTest_native -* Signature: (J;L;Lcom/jme3/math/Transform;Lcom/jme3/math/Transform;L;JLjava/util/List;F)V -*/ -JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_sweepTest_1native -(JNIEnv *, jobject, jlong, jobject, jobject, jlong, jobject, jfloat); - -/* - * Class: com_jme3_bullet_PhysicsSpace - * Method: setSolverNumIterations - * Signature: (JI)V - */ -JNIEXPORT void JNICALL Java_com_jme3_bullet_PhysicsSpace_setSolverNumIterations -(JNIEnv *, jobject, jlong, jint); - #ifdef __cplusplus } #endif diff --git a/jme3-bullet-native/src/native/cpp/com_jme3_bullet_objects_PhysicsRigidBody.h b/jme3-bullet-native/src/native/cpp/com_jme3_bullet_objects_PhysicsRigidBody.h index 67ba9e609..4cfb85b37 100644 --- a/jme3-bullet-native/src/native/cpp/com_jme3_bullet_objects_PhysicsRigidBody.h +++ b/jme3-bullet-native/src/native/cpp/com_jme3_bullet_objects_PhysicsRigidBody.h @@ -401,7 +401,6 @@ JNIEXPORT jfloat JNICALL Java_com_jme3_bullet_objects_PhysicsRigidBody_getAngula JNIEXPORT void JNICALL Java_com_jme3_bullet_objects_PhysicsRigidBody_getAngularFactor (JNIEnv *, jobject, jlong, jobject); - /* * Class: com_jme3_bullet_objects_PhysicsRigidBody * Method: setAngularFactor diff --git a/jme3-bullet/build.gradle b/jme3-bullet/build.gradle index bcb1d50cc..075d30163 100644 --- a/jme3-bullet/build.gradle +++ b/jme3-bullet/build.gradle @@ -15,3 +15,54 @@ dependencies { compile project(':jme3-core') compile project(':jme3-terrain') } + +task generateNativeHeaders(type: Exec, dependsOn: classes) { + def classes = " \ + com.jme3.bullet.PhysicsSpace, \ + \ + com.jme3.bullet.collision.PhysicsCollisionEvent, \ + com.jme3.bullet.collision.PhysicsCollisionObject,\ + com.jme3.bullet.objects.PhysicsCharacter, \ + com.jme3.bullet.objects.PhysicsGhostObject, \ + com.jme3.bullet.objects.PhysicsRigidBody, \ + com.jme3.bullet.objects.PhysicsVehicle, \ + com.jme3.bullet.objects.VehicleWheel, \ + com.jme3.bullet.objects.infos.RigidBodyMotionState, \ + \ + com.jme3.bullet.collision.shapes.CollisionShape, \ + com.jme3.bullet.collision.shapes.BoxCollisionShape, \ + com.jme3.bullet.collision.shapes.CapsuleCollisionShape, \ + com.jme3.bullet.collision.shapes.CompoundCollisionShape, \ + com.jme3.bullet.collision.shapes.ConeCollisionShape, \ + com.jme3.bullet.collision.shapes.CylinderCollisionShape, \ + com.jme3.bullet.collision.shapes.GImpactCollisionShape, \ + com.jme3.bullet.collision.shapes.HeightfieldCollisionShape, \ + com.jme3.bullet.collision.shapes.HullCollisionShape, \ + com.jme3.bullet.collision.shapes.MeshCollisionShape, \ + com.jme3.bullet.collision.shapes.PlaneCollisionShape, \ + com.jme3.bullet.collision.shapes.SimplexCollisionShape, \ + com.jme3.bullet.collision.shapes.SphereCollisionShape, \ + \ + com.jme3.bullet.joints.PhysicsJoint, \ + com.jme3.bullet.joints.ConeJoint, \ + com.jme3.bullet.joints.HingeJoint, \ + com.jme3.bullet.joints.Point2PointJoint, \ + com.jme3.bullet.joints.SixDofJoint, \ + com.jme3.bullet.joints.SixDofSpringJoint, \ + com.jme3.bullet.joints.SliderJoint, \ + com.jme3.bullet.joints.motors.RotationalLimitMotor, \ + com.jme3.bullet.joints.motors.TranslationalLimitMotor, \ + \ + com.jme3.bullet.util.NativeMeshUtil, \ + com.jme3.bullet.util.DebugShapeFactory" + + def classpath = sourceSets.main.runtimeClasspath.asPath + def nativeIncludes = new File(project(":jme3-bullet-native").projectDir, "src/native/cpp") + + executable org.gradle.internal.jvm.Jvm.current().getExecutable('javah') + args "-d", nativeIncludes + args "-classpath", classpath + args classes.split(",").collect { it.trim() } +} + +assemble.dependsOn(generateNativeHeaders) \ No newline at end of file diff --git a/jme3-examples/build.gradle b/jme3-examples/build.gradle index 47ee94c72..dde857609 100644 --- a/jme3-examples/build.gradle +++ b/jme3-examples/build.gradle @@ -63,69 +63,71 @@ jar.doFirst{ task dist (dependsOn: ['build', ':jme3-jogl:jar', ':jme3-bullet:jar', ':jme3-android:jar', \ ':jme3-android-native:jar', ':jme3-bullet-native-android:jar', \ - ':jme3-bullet-native:jar']) << { - // Copy all dependencies to ../dist/lib, remove versions from jar files - configurations.compile.resolvedConfiguration.resolvedArtifacts.each { artifact -> - copy { - from artifact.file - into '../dist/lib' - if(artifact.classifier != null){ - rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } - } else{ - rename { "${artifact.name}.${artifact.extension}" } + ':jme3-bullet-native:jar']) { + doLast { + // Copy all dependencies to ../dist/lib, remove versions from jar files + configurations.compile.resolvedConfiguration.resolvedArtifacts.each { artifact -> + copy { + from artifact.file + into '../dist/lib' + if(artifact.classifier != null){ + rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } + } else{ + rename { "${artifact.name}.${artifact.extension}" } + } } } - } - copy { - from jar.archivePath - into '../dist' - rename { "jMonkeyEngine3.jar" } - } - // Copy JOGL packages, remove version - def config = project(':jme3-jogl').configurations.runtime.copyRecursive({ !(it instanceof ProjectDependency); }) - config.resolvedConfiguration.resolvedArtifacts.each {artifact -> - copy{ - from artifact.file - into '../dist/opt/jogl/lib' - if(artifact.classifier != null){ - rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } - } else{ - rename { "${artifact.name}.${artifact.extension}" } + copy { + from jar.archivePath + into '../dist' + rename { "jMonkeyEngine3.jar" } + } + // Copy JOGL packages, remove version + def config = project(':jme3-jogl').configurations.runtime.copyRecursive({ !(it instanceof ProjectDependency); }) + config.resolvedConfiguration.resolvedArtifacts.each {artifact -> + copy{ + from artifact.file + into '../dist/opt/jogl/lib' + if(artifact.classifier != null){ + rename { "${artifact.name}-${artifact.classifier}.${artifact.extension}" } + } else{ + rename { "${artifact.name}.${artifact.extension}" } + } } } - } - copy { - from project(':jme3-jogl').jar.archivePath - into '../dist/opt/jogl' - rename {project(':jme3-jogl').name+".jar"} - } + copy { + from project(':jme3-jogl').jar.archivePath + into '../dist/opt/jogl' + rename {project(':jme3-jogl').name+".jar"} + } - // Copy bullet packages, remove version - copy { - from project(':jme3-bullet').jar.archivePath - into '../dist/opt/native-bullet' - rename {project(':jme3-bullet').name+".jar"} - } - copy { - from project(':jme3-bullet-native').jar.archivePath - into '../dist/opt/native-bullet' - rename {project(':jme3-bullet-native').name+".jar"} - } + // Copy bullet packages, remove version + copy { + from project(':jme3-bullet').jar.archivePath + into '../dist/opt/native-bullet' + rename {project(':jme3-bullet').name+".jar"} + } + copy { + from project(':jme3-bullet-native').jar.archivePath + into '../dist/opt/native-bullet' + rename {project(':jme3-bullet-native').name+".jar"} + } - // Copy android packages, remove version - copy { - from project(':jme3-android').jar.archivePath - into '../dist/opt/android' - rename {project(':jme3-android').name+".jar"} - } - copy { - from project(':jme3-android-native').jar.archivePath - into '../dist/opt/android' - rename {project(':jme3-android-native').name+".jar"} - } - copy { - from project(':jme3-bullet-native-android').jar.archivePath - into '../dist/opt/native-bullet' - rename {project(':jme3-bullet-native-android').name+".jar"} + // Copy android packages, remove version + copy { + from project(':jme3-android').jar.archivePath + into '../dist/opt/android' + rename {project(':jme3-android').name+".jar"} + } + copy { + from project(':jme3-android-native').jar.archivePath + into '../dist/opt/android' + rename {project(':jme3-android-native').name+".jar"} + } + copy { + from project(':jme3-bullet-native-android').jar.archivePath + into '../dist/opt/native-bullet' + rename {project(':jme3-bullet-native-android').name+".jar"} + } } } diff --git a/private/key.enc b/private/key.enc new file mode 100644 index 000000000..ecabf1678 --- /dev/null +++ b/private/key.enc @@ -0,0 +1,4 @@ +&"+q.g2K:ƇT >18]v^LЫ/R"o2#5;Q`;@񻦱&{yJGaG;lTdltnHxp~WrJ5争 Ch_# +۞){2xXdފu1޳ +" +P DC'e1Dk]ix&"n935d6==Xb8JWB/wmJ&Y죊u=* \ No newline at end of file diff --git a/private/upload_native.sh b/private/upload_native.sh new file mode 100755 index 000000000..f23f3fef8 --- /dev/null +++ b/private/upload_native.sh @@ -0,0 +1,16 @@ +#!/bin/bash +set -euo pipefail +# NATIVE_CHANGES="$(git diff-tree --name-only "$TRAVIS_COMMIT" -- jme3-bullet-native/)" +# if [ "$NATIVE_CHANGES" != "" ]; then + git config --global user.email "travis-ci" + git config --global user.name "travis-ci" + openssl aes-256-cbc -K $encrypted_f0a0b284e2e8_key -iv $encrypted_f0a0b284e2e8_iv -in private/key.enc -out "$HOME/.ssh/id_rsa" -d + chmod 600 "$HOME/.ssh/id_rsa" + ls jme3-bullet-native/build/libs/bulletjme/shared/ + md5 -r jme3-bullet-native/libs/native/osx/x86/libbulletjme.dylib jme3-bullet-native/build/libs/bulletjme/shared/mac32/libbulletjme.dylib + git checkout "$TRAVIS_BRANCH" + git add -v -- jme3-bullet-native/libs/native/ + git commit -v -m "[ci skip] bullet: update $TRAVIS_OS_NAME natives" + git pull -q --rebase + # git push git@github.com:jMonkeyEngine/jmonkeyengine.git +# fi diff --git a/private/www-updater.key.enc b/private/www-updater.key.enc deleted file mode 100644 index b6a226068..000000000 Binary files a/private/www-updater.key.enc and /dev/null differ diff --git a/settings.gradle b/settings.gradle index 4c5497cfb..36e8b58f4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -15,7 +15,9 @@ include 'jme3-desktop' include 'jme3-blender' include 'jme3-jogl' include 'jme3-lwjgl' -include 'jme3-lwjgl3' +if (JavaVersion.current().isJava8Compatible()) { + include 'jme3-lwjgl3' +} // Other external dependencies include 'jme3-jbullet' diff --git a/version.gradle b/version.gradle index f07c9d281..22a34c38b 100644 --- a/version.gradle +++ b/version.gradle @@ -1,7 +1,7 @@ /* Version Info Examples ===================== - + Nightly Build Snapshot * git tag: * Full Version: 3.1-5124 @@ -22,14 +22,14 @@ * POM Version: 3.1.0-alpha1 * NBM Revision: 0 * NBM UC Suffix: stable/3.1/plugins - + Final Release * git tag: v3.1.0 * Full Version: 3.1 * POM Version: 3.1.0 * NBM Revision: 0 * NBM UC Suffix: stable/3.1/plugins - */ + */ import java.text.SimpleDateFormat import org.ajoberstar.grgit.* @@ -45,7 +45,6 @@ buildscript { ext { jmeRevision = 0 - jmeNbmRevision = 0 jmeGitHash = "" jmeGitTag = "" jmeShortGitHash = "" @@ -53,7 +52,6 @@ ext { jmeBranchName = "unknown" jmeFullVersion = "${jmeVersion}-UNKNOWN" jmePomVersion = "unknown" - jmeNbmUcSuffix = "unknown" } def getReleaseInfo(String tag) { @@ -122,47 +120,46 @@ task configureVersionInfo { jmeShortGitHash = head.abbreviatedId jmeBranchName = grgit.branch.current.name jmeGitTag = grgit.tag.list().find { it.commit == head } - + if (jmeGitTag != null) { jmeGitTag = jmeGitTag.name } else { - jmeGitTag = System.env.TRAVIS_TAG + if (System.env.APPVEYOR_REPO_TAG == "true") { + jmeGitTag = System.env.APPVEYOR_REPO_TAG_NAME + } else { + jmeGitTag = System.env.TRAVIS_TAG + } } def releaseInfo = getReleaseInfo(jmeGitTag) if (releaseInfo != null) { jmeFullVersion = "${releaseInfo.baseVersion}${releaseInfo.releaseSuffix}" jmePomVersion = "${releaseInfo.mainVersion}${releaseInfo.releaseSuffix}" - jmeNbmRevision = "0" - jmeNbmUcSuffix = "stable/${releaseInfo.baseVersion}/plugins" } else { // SNAPSHOT jmeFullVersion = jmeMainVersion jmePomVersion = jmeVersion if (System.env.TRAVIS_BRANCH != null) { jmeBranchName = System.env.TRAVIS_BRANCH + } else if (System.env.APPVEYOR_REPO_BRANCH != null) { + jmeBranchName = System.env.APPVEYOR_REPO_BRANCH } - if (System.env.TRAVIS_PULL_REQUEST != null && + if (System.env.TRAVIS_PULL_REQUEST != null && System.env.TRAVIS_PULL_REQUEST != "false") { jmeBranchName += "-pr-" + System.env.TRAVIS_PULL_REQUEST + } else if (System.env.APPVEYOR_PULL_REQUEST_NUMBER != null) { + jmeBranchName += "-pr-" + System.env.APPVEYOR_PULL_REQUEST_NUMBER } if (jmeBranchName != "master") { jmeFullVersion += "-${jmeBranchName}" jmePomVersion += "-${jmeBranchName}" - jmeNbmUcSuffix = "${jmeBranchName}-" - } else { - jmeNbmUcSuffix = "" } - jmeNbmUcSuffix += "nightly/" + jmeMainVersion + "/plugins" jmeFullVersion += "-${jmeRevision}" jmePomVersion += "-SNAPSHOT" - jmeNbmRevision = jmeRevision } - + logger.warn("Full Version: ${jmeFullVersion}") logger.warn("POM Version: ${jmePomVersion}") - logger.warn("NBM Revision: ${jmeNbmRevision}") - logger.warn("NBM UC Suffix: ${jmeNbmUcSuffix}") } catch (ex) { // Failed to get repo info logger.warn("Failed to get repository info: " + ex.message + ". " + \