Compare commits

..

35 Commits
master ... 3.0

Author SHA1 Message Date
Normen Hansen 811e715c38 - add iOS input handling base classes 11 years ago
sgold@sonic.net 10490c2f39 update plugins version to 3.0.8 11 years ago
sgold@sonic.net a74fc22797 update version to 3.0.8 in core 11 years ago
sgold@sonic.net 0c4bfed950 fix issue where rays pass through Quads in certain cases: corresponds to SVN rev 10785 in trunk 11 years ago
sgold@sonic.net fb681741de fix issue where AnimChannel.update() fails to invoke onAnimCycleDone(): corresponds to ad99467cf2 in master 11 years ago
sgold@sonic.net dc4d959617 fix NPE in FilterPostProcessor: corresponds to SVN revision 10920 in trunk 11 years ago
nor..67 a77c090be2 - 3.0.7 fix for merge issue 11 years ago
nor..67 cacd179107 - re-fix leftover merge conflict 11 years ago
nor..67 9edf5dc21e - fix leftover merge conflict 11 years ago
nor..67 8ff93b862b update stable to 3.0.6, see http://hub.jmonkeyengine.org/forum/topic/candidate-changes-for-3-0-6/ 11 years ago
nor..67 fb02f3d95c - add svn merge infos 11 years ago
nor..67 48c7183385 - re-add some depth func stuff from ios renderer (only stable branch) 11 years ago
nor..67 f881fa7851 - re-add some depth func stuff from ios renderer (only stable branch) 11 years ago
nor..67 c8e6878b64 - re-add some depth func stuff from ios renderer (only stable branch) 11 years ago
nor..67 02841d4295 - remove depth func stuff from ios renderer (only stable branch) 11 years ago
nor..67 cacef7564a - add merge info 11 years ago
nor..67 0e75269405 - merge jdk version info 11 years ago
nor..67 22c77b954c Update 3.0.5 11 years ago
iwg..ic 4399db373b Bump SDK Plugins version 3.0.4 to push out an update 11 years ago
iwg..ic c2db7f0254 Bump JmeVersion to 3.0.4 11 years ago
iwg..ic 2209210617 Port patch for NativeObjectManager in Trunk r10889 to the 3.0 Final branch. https://code.google.com/p/jmonkeyengine/source/detail?r=10889 11 years ago
iwg..ic 64b9ae958b Bump plugins version number to 3.0.3 11 years ago
iwg..ic e2b7ebaf76 Bump engine version number to 3.0.3 11 years ago
iwg..ic 33db5460c3 Android: Update Android Config Chooser to the same level as r10798 from trunk. Fixes issues due to finding the EGL config too early based on a default display instead of finding the config when asked for it by the surface. 11 years ago
PSp..om f4b4fc9c1e Upping version. 12 years ago
PSp..om 781fb7b4e6 Fixing JME system version and upping it at the 12 years ago
PSp..om 22e4745fea From trunk: 12 years ago
rem..om 35cb546c0d Changed plugin version in 3.0final branch to 3.0.1 for sdk 12 years ago
rem..om f8c466f329 Merged revision 10799 from trunk 12 years ago
nor..67 16d34f7bbb Merge build and genfile changes 12 years ago
nor..67 cb980091ad Merge build changes 12 years ago
nor..67 d947820d9b Merge SDK config changes 12 years ago
nor..67 2271c690a3 Merge SDK config changes 12 years ago
nor..67 71217a6da2 Merge SDK config changes 12 years ago
PSp..om 247f2a633d Branching the code for final 3.0 release so we can continue 12 years ago
  1. 93
      .github/actions/tools/bintray.sh
  2. 85
      .github/actions/tools/uploadToMaven.sh
  3. 554
      .github/workflows/main.yml
  4. 48
      .gitignore
  5. 9
      .nb-gradle-properties
  6. 70
      CONTRIBUTING.md
  7. 29
      LICENSE
  8. 53
      README.md
  9. 29
      bintray.gradle
  10. 263
      build.gradle
  11. 147
      build.xml
  12. 13
      common-android-app.gradle
  13. 137
      common.gradle
  14. 1
      engine/MANIFEST.MF
  15. BIN
      engine/TestChooser.exe
  16. 632
      engine/build.xml
  17. 176
      engine/bullet-native-build.txt
  18. BIN
      engine/lib/CopyLibs-2/org-netbeans-modules-java-j2seproject-copylibstask.jar
  19. BIN
      engine/lib/EasyMock/cglib-docs-2.2.3.jar
  20. BIN
      engine/lib/EasyMock/cglib-nodep-2.2.3.jar
  21. BIN
      engine/lib/EasyMock/cglib-src-2.2.3.jar
  22. BIN
      engine/lib/EasyMock/easymock-3.1-javadoc.jar
  23. BIN
      engine/lib/EasyMock/easymock-3.1-sources.jar
  24. BIN
      engine/lib/EasyMock/easymock-3.1.jar
  25. BIN
      engine/lib/EasyMock/objenesis-1.3-javadoc.jar
  26. BIN
      engine/lib/EasyMock/objenesis-1.3-sources.jar
  27. BIN
      engine/lib/EasyMock/objenesis-1.3.jar
  28. BIN
      engine/lib/JWSAntTasks/org-netbeans-modules-javawebstart-anttasks.jar
  29. BIN
      engine/lib/android/android.jar
  30. BIN
      engine/lib/antlibs/cpptasks.jar
  31. 11
      engine/lib/antlibs/depfinder/classes/dependencyfindertasks.properties
  32. 20
      engine/lib/antlibs/depfinder/classes/log4j.properties
  33. 304
      engine/lib/antlibs/depfinder/etc/DiffToHTML.xsl
  34. BIN
      engine/lib/antlibs/depfinder/lib/DependencyFinder.jar
  35. BIN
      engine/lib/antlibs/depfinder/lib/guava.jar
  36. 202
      engine/lib/antlibs/depfinder/lib/guava.lic
  37. BIN
      engine/lib/antlibs/depfinder/lib/jakarta-oro.jar
  38. 53
      engine/lib/antlibs/depfinder/lib/jakarta-oro.lic
  39. BIN
      engine/lib/antlibs/depfinder/lib/log4j.jar
  40. 202
      engine/lib/antlibs/depfinder/lib/log4j.lic
  41. 31
      engine/lib/antlibs/depfinder/license.txt
  42. 28
      engine/lib/antlibs/depfinder/readme.txt
  43. BIN
      engine/lib/antlibs/jsch-0.1.42.jar
  44. BIN
      engine/lib/bullet/android/armeabi-v7a/libbulletjme.so
  45. BIN
      engine/lib/bullet/android/armeabi/libbulletjme.so
  46. BIN
      engine/lib/bullet/android/x86/libbulletjme.so
  47. BIN
      engine/lib/bullet/jME3-bullet-natives-android.jar
  48. BIN
      engine/lib/bullet/jME3-bullet-natives.jar
  49. BIN
      engine/lib/bullet/jarcontent/native/linux/libbulletjme.so
  50. BIN
      engine/lib/bullet/jarcontent/native/linux/libbulletjme64.so
  51. BIN
      engine/lib/bullet/jarcontent/native/macosx/libbulletjme.jnilib
  52. BIN
      engine/lib/bullet/jarcontent/native/windows/bulletjme.dll
  53. BIN
      engine/lib/bullet/jarcontent/native/windows/bulletjme64.dll
  54. BIN
      engine/lib/jbullet/asm-all-3.1.jar
  55. 0
      engine/lib/jbullet/jbullet.jar
  56. 0
      engine/lib/jbullet/stack-alloc.jar
  57. BIN
      engine/lib/jbullet/vecmath.jar
  58. BIN
      engine/lib/jogg/j-ogg-oggd.jar
  59. BIN
      engine/lib/jogg/j-ogg-vorbisd.jar
  60. BIN
      engine/lib/jogl/gluegen-rt-natives-linux-amd64.jar
  61. BIN
      engine/lib/jogl/gluegen-rt-natives-linux-armv6.jar
  62. BIN
      engine/lib/jogl/gluegen-rt-natives-linux-armv6hf.jar
  63. BIN
      engine/lib/jogl/gluegen-rt-natives-linux-i586.jar
  64. BIN
      engine/lib/jogl/gluegen-rt-natives-macosx-universal.jar
  65. BIN
      engine/lib/jogl/gluegen-rt-natives-solaris-amd64.jar
  66. BIN
      engine/lib/jogl/gluegen-rt-natives-solaris-i586.jar
  67. BIN
      engine/lib/jogl/gluegen-rt-natives-windows-amd64.jar
  68. BIN
      engine/lib/jogl/gluegen-rt-natives-windows-i586.jar
  69. BIN
      engine/lib/jogl/gluegen-rt.jar
  70. BIN
      engine/lib/jogl/joal-natives-linux-amd64.jar
  71. BIN
      engine/lib/jogl/joal-natives-linux-armv6.jar
  72. BIN
      engine/lib/jogl/joal-natives-linux-armv6hf.jar
  73. BIN
      engine/lib/jogl/joal-natives-linux-i586.jar
  74. BIN
      engine/lib/jogl/joal-natives-macosx-universal.jar
  75. BIN
      engine/lib/jogl/joal-natives-solaris-amd64.jar
  76. BIN
      engine/lib/jogl/joal-natives-solaris-i586.jar
  77. BIN
      engine/lib/jogl/joal-natives-windows-amd64.jar
  78. BIN
      engine/lib/jogl/joal-natives-windows-i586.jar
  79. BIN
      engine/lib/jogl/joal.jar
  80. BIN
      engine/lib/jogl/jogl-all-natives-linux-amd64.jar
  81. BIN
      engine/lib/jogl/jogl-all-natives-linux-armv6.jar
  82. BIN
      engine/lib/jogl/jogl-all-natives-linux-armv6hf.jar
  83. BIN
      engine/lib/jogl/jogl-all-natives-linux-i586.jar
  84. BIN
      engine/lib/jogl/jogl-all-natives-macosx-universal.jar
  85. BIN
      engine/lib/jogl/jogl-all-natives-solaris-amd64.jar
  86. BIN
      engine/lib/jogl/jogl-all-natives-solaris-i586.jar
  87. BIN
      engine/lib/jogl/jogl-all-natives-windows-amd64.jar
  88. BIN
      engine/lib/jogl/jogl-all-natives-windows-i586.jar
  89. BIN
      engine/lib/jogl/jogl-all.jar
  90. BIN
      engine/lib/junit_4/junit-4.5-api.zip
  91. BIN
      engine/lib/junit_4/junit-4.5-src.jar
  92. BIN
      engine/lib/junit_4/junit-4.5.jar
  93. 32
      engine/lib/lwjgl/3rdparty/jinput_license.txt
  94. 152
      engine/lib/lwjgl/3rdparty/jogl_license.txt
  95. 15
      engine/lib/lwjgl/3rdparty/lzma_license.txt
  96. 437
      engine/lib/lwjgl/3rdparty/openal_license.txt
  97. 38
      engine/lib/lwjgl/CREDITS
  98. 31
      engine/lib/lwjgl/LICENSE
  99. 50
      engine/lib/lwjgl/README
  100. BIN
      engine/lib/lwjgl/jME3-lwjgl-natives.jar
  101. Some files were not shown because too many files have changed in this diff Show More

@ -1,93 +0,0 @@
#!/bin/bash
# bintray_createPackage [REPO] [PACKAGE] [USER] [PASSWORD] [GIT REPO] [LICENSE]
function bintray_createPackage {
repo="$1"
package="$2"
user="$3"
password="$4"
srcrepo="$5"
license="$6"
repoUrl="https://api.bintray.com/packages/$repo"
if [ "`curl -u$user:$password -H Content-Type:application/json -H Accept:application/json \
--write-out %{http_code} --silent --output /dev/null -X GET \"$repoUrl/$package\"`" != "200" ];
then
if [ "$srcrepo" != "" -a "$license" != "" ];
then
echo "Package does not exist... create."
data="{
\"name\": \"${package}\",
\"labels\": [],
\"licenses\": [\"${license}\"],
\"vcs_url\": \"${srcrepo}\"
}"
curl -u$user:$password -H "Content-Type:application/json" -H "Accept:application/json" -X POST \
-d "${data}" "$repoUrl"
else
echo "Package does not exist... you need to specify a repo and license for it to be created."
fi
else
echo "The package already exists. Skip."
fi
}
# uploadFile file destination [REPO] "content" [PACKAGE] [USER] [PASSWORD] [SRCREPO] [LICENSE]
function bintray_uploadFile {
file="$1"
dest="$2"
echo "Upload $file to $dest"
repo="$3"
type="$4"
package="$5"
user="$6"
password="$7"
srcrepo="$8"
license="$9"
publish="${10}"
bintray_createPackage $repo $package $user $password $srcrepo $license
url="https://api.bintray.com/$type/$repo/$package/$dest"
if [ "$publish" = "true" ]; then url="$url;publish=1"; fi
curl -T "$file" -u$user:$password "$url"
}
function bintray_uploadAll {
path="$1"
destpath="$2"
repo="$3"
type="$4"
package="$5"
user="$6"
password="$7"
srcrepo="$8"
license="$9"
publish="${10}"
cdir="$PWD"
cd "$path"
files="`find . -type f -print`"
IFS="
"
set -f
for f in $files; do
destfile="$destpath/${f:2}"
bintray_uploadFile $f $destfile $repo $type $package $user $password $srcrepo $license $publish
done
set +f
unset IFS
cd "$cdir"
}

@ -1,85 +0,0 @@
#!/bin/bash
#############################################
#
# Usage
# uploadAllToMaven path/of/dist/maven https://api.bintray.com/maven/riccardo/sandbox-maven/ riccardo $BINTRAY_PASSWORD gitrepo license
# Note: gitrepo and license are needed only when uploading to bintray if you want to create missing packages automatically
# gitrepo must be a valid source repository
# license must be a license supported by bintray eg "BSD 3-Clause"
# or
# uploadAllToMaven path/of/dist/maven $GITHUB_PACKAGE_REPOSITORY user password
#
#############################################
root="`dirname ${BASH_SOURCE[0]}`"
source $root/bintray.sh
set -e
function uploadToMaven {
file="$1"
destfile="$2"
repourl="$3"
user="$4"
password="$5"
srcrepo="$6"
license="$7"
auth=""
if [ "$user" != "token" ];
then
echo "Upload with username $user and password"
auth="-u$user:$password"
else
echo "Upload with token"
auth="-H \"Authorization: token $password\""
fi
if [[ $repourl == https\:\/\/api.bintray.com\/* ]];
then
package="`dirname $destfile`"
version="`basename $package`"
package="`dirname $package`"
package="`basename $package`"
if [ "$user" = "" -o "$password" = "" ];
then
echo "Error! You need username and password to upload to bintray"
exit 1
fi
echo "Detected bintray"
bintrayRepo="${repourl/https\:\/\/api.bintray.com\/maven/}"
echo "Create package on $bintrayRepo"
bintray_createPackage $bintrayRepo $package $user $password $srcrepo $license
repourl="$repourl/$package"
fi
cmd="curl -T \"$file\" $auth \
\"$repourl/$destfile\" \
-vvv"
echo "Run $cmd"
eval "$cmd"
}
export -f uploadToMaven
function uploadAllToMaven {
path="$1"
cdir="$PWD"
cd "$path"
files="`find . \( -name "*.jar" -o -name "*.pom" \) -type f -print`"
IFS="
"
set -f
for art in $files; do
art="${art:2}"
uploadToMaven "$art" "$art" ${@:2}
done
set +f
unset IFS
cd "$cdir"
}

@ -1,554 +0,0 @@
######################################################################################
# JME CI/CD
######################################################################################
# Quick overview of what is going on in this script:
# - Build natives for android
# - Build natives for linux arm
# - Build natives for windows,mac,linux x86_64 and x86
# - Merge the natives, build the engine, create the zip release, maven artifacts, javadoc and native snapshot
# - (only when there is a change in the native code) Deploy the native snapshot to bintray
# - (only when building a release) Deploy everything else to github releases, github packet registry and bintray
# - (only when building a release) Update javadoc.jmonkeyengine.org
# Note:
# All the actions/upload-artifact and actions/download-artifact steps are used to pass
# stuff between jobs, github actions has some sort of storage that is local to the
# running workflow, we use it to store the result of each job since the filesystem
# is not maintained between jobs.
################# CONFIGURATIONS #####################################################
# >> Configure BINTRAY RELEASE & NATIVE SNAPSHOT
# Configure the following secrets/variables (customize the values with your own)
# BINTRAY_GENERIC_REPO=riccardoblsandbox/jmonkeyengine-files
# BINTRAY_MAVEN_REPO=riccardoblsandbox/jmonkeyengine
# BINTRAY_USER=riccardo
# BINTRAY_APIKEY=XXXXXX
# BINTRAY_LICENSE="BSD 3-Clause"
# >> Configure PACKAGE REGISTRY RELEASE
# Nothing to do here, everything is autoconfigured to work with the account/org that
# is running the build.
# >> Configure JAVADOC
# JAVADOC_GHPAGES_REPO="riccardoblsandbox/javadoc.jmonkeyengine.org.git"
# Generate a deloy key
# ssh-keygen -t rsa -b 4096 -C "actions@users.noreply.github.com" -f javadoc_deploy
# Set
# JAVADOC_GHPAGES_DEPLOY_PRIVKEY="......."
# In github repo -> Settings, use javadoc_deploy.pub as Deploy key with write access
######################################################################################
# Resources:
# - Github actions docs: https://help.github.com/en/articles/about-github-actions
# - Package registry docs: https://help.github.com/en/articles/about-github-package-registry
# - Official actions: https://github.com/actions
# - Community actions: https://github.com/sdras/awesome-actions
######################################################################################
# - Riccardo Balbo
######################################################################################
name: Build jMonkeyEngine
on:
push:
branches:
- master
- newbuild
- v3.3.*
- v3.2
- v3.2.*
pull_request:
release:
types: [published]
jobs:
# Builds the natives on linux arm
BuildLinuxArmNatives:
name: Build natives for linux (arm)
runs-on: ubuntu-18.04
container:
image: riccardoblb/buildenv-jme3:linuxArm
steps:
- name: Clone the repo
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Validate the Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Build
run: |
# Build
# Note: since this is crossbuild we use the buildForPlatforms filter to tell
# the buildscript wich platforms it should build for.
./gradlew -PuseCommitHashAsVersionName=true --no-daemon -PbuildForPlatforms=LinuxArm,LinuxArmHF,LinuxArm64 -PbuildNativeProjects=true \
:jme3-bullet-native:assemble
- name: Upload natives
uses: actions/upload-artifact@master
with:
name: linuxarm-natives
path: build/native
# Build the natives on android
BuildAndroidNatives:
name: Build natives for android
runs-on: ubuntu-18.04
container:
image: riccardoblb/buildenv-jme3:android
steps:
- name: Clone the repo
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Validate the Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Build
run: |
./gradlew -PuseCommitHashAsVersionName=true --no-daemon -PbuildNativeProjects=true \
:jme3-android-native:assemble \
:jme3-bullet-native-android:assemble
- name: Upload natives
uses: actions/upload-artifact@master
with:
name: android-natives
path: build/native
# Build the natives
BuildNatives:
strategy:
fail-fast: true
matrix:
os: [ubuntu-18.04,windows-2019,macOS-latest]
jdk: [8.x.x]
include:
- os: ubuntu-18.04
osName: linux
- os: windows-2019
osName: windows
- os: macOS-latest
osName: mac
name: Build natives for ${{ matrix.osName }}
runs-on: ${{ matrix.os }}
steps:
- name: Clone the repo
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Prepare java environment
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}
architecture: x64
- name: Validate the Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Build Natives
shell: bash
env:
OS_NAME: ${{ matrix.osName }}
run: |
# Install dependencies
if [ "$OS_NAME" = "mac" ];
then
echo "Prepare mac"
elif [ "$OS_NAME" = "linux" ];
then
echo "Prepare linux"
sudo apt-get update
sudo apt-get install -y gcc-multilib g++-multilib
else
echo "Prepare windows"
fi
# Build
./gradlew -PuseCommitHashAsVersionName=true --no-daemon -PbuildNativeProjects=true -Dmaven.repo.local="$PWD/dist/maven" \
build \
:jme3-bullet-native:build
# Upload natives to be used later by the BuildJMonkey job
- name: Upload natives
uses: actions/upload-artifact@master
with:
name: ${{ matrix.osName }}-natives
path: build/native
# Build the engine, we only deploy from ubuntu-18.04 jdk8
BuildJMonkey:
needs: [BuildNatives,BuildAndroidNatives]
name: Build on ${{ matrix.osName }} jdk${{ matrix.jdk }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: true
matrix:
os: [ubuntu-18.04,windows-2019,macOS-latest]
jdk: [8.x.x,11.x.x]
include:
- os: ubuntu-18.04
osName: linux
deploy: true
- os: windows-2019
osName: windows
- os: macOS-latest
osName: mac
- jdk: 11.x.x
deploy: false
steps:
- name: Clone the repo
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Setup the java environment
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}
architecture: x64
- name: Download natives for linux
uses: actions/download-artifact@master
with:
name: linux-natives
path: build/native
- name: Download natives for windows
uses: actions/download-artifact@master
with:
name: windows-natives
path: build/native
- name: Download natives for mac
uses: actions/download-artifact@master
with:
name: mac-natives
path: build/native
- name: Download natives for android
uses: actions/download-artifact@master
with:
name: android-natives
path: build/native
- name: Download natives for linux (arm)
uses: actions/download-artifact@master
with:
name: linuxarm-natives
path: build/native
- name: Validate the Gradle wrapper
uses: gradle/wrapper-validation-action@v1
- name: Build Engine
shell: bash
run: |
# Build
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true build
if [ "${{ matrix.deploy }}" = "true" ];
then
# We are going to need "zip"
sudo apt-get update
sudo apt-get install -y zip
# Create the zip release and the javadoc
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true mergedJavadoc createZipDistribution
# We prepare the release for deploy
mkdir -p ./dist/release/
mv build/distributions/*.zip dist/release/
# Create the maven artifacts
mkdir -p ./dist/maven/
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true install -Dmaven.repo.local="$PWD/dist/maven"
# Zip the natives into a single archive (we are going to use this to deploy native snapshots)
echo "Create native zip"
cdir="$PWD"
cd "build/native"
zip -r "$cdir/dist/jme3-natives.zip" *
cd "$cdir"
echo "Done"
fi
# Used later by DeploySnapshot
- name: Upload merged natives
if: matrix.deploy==true
uses: actions/upload-artifact@master
with:
name: natives
path: dist/jme3-natives.zip
# Upload maven artifacts to be used later by the deploy job
- name: Upload maven artifacts
if: matrix.deploy==true
uses: actions/upload-artifact@master
with:
name: maven
path: dist/maven
- name: Upload javadoc
if: matrix.deploy==true
uses: actions/upload-artifact@master
with:
name: javadoc
path: dist/javadoc
# Upload release archive to be used later by the deploy job
- name: Upload release
if: github.event_name == 'release' && matrix.deploy==true
uses: actions/upload-artifact@master
with:
name: release
path: dist/release
# This job deploys the native snapshot.
# The snapshot is downloaded when people build the engine without setting buildNativeProject
# this is useful for people that want to build only the java part and don't have
# all the stuff needed to compile natives.
DeploySnapshot:
needs: [BuildJMonkey]
name: "Deploy snapshot"
runs-on: ubuntu-18.04
if: github.event_name == 'push'
steps:
# We clone the repo manually, since we are going to push back a reference to the snapshot
- name: Clone the repo
run: |
branch="${GITHUB_REF//refs\/heads\//}"
if [ "$branch" != "" ];
then
git clone --single-branch --branch "$branch" https://github.com/${GITHUB_REPOSITORY}.git .
fi
- name: Download merged natives
uses: actions/download-artifact@master
with:
name: natives
path: dist/
- name: Deploy natives snapshot
run: |
source .github/actions/tools/bintray.sh
NATIVE_CHANGES="yes"
branch="${GITHUB_REF//refs\/heads\//}"
if [ "$branch" != "" ];
then
if [ -f "natives-snapshot.properties" ];
then
nativeSnapshot=`cat "natives-snapshot.properties"`
nativeSnapshot="${nativeSnapshot#*=}"
# We deploy ONLY if GITHUB_SHA (the current commit hash) is newer than $nativeSnapshot
if [ "`git rev-list --count $nativeSnapshot..$GITHUB_SHA`" = "0" ];
then
NATIVE_CHANGES=""
else
# We check if the native code changed.
echo "Detect changes"
NATIVE_CHANGES="$(git diff-tree --name-only "$GITHUB_SHA" "$nativeSnapshot" -- jme3-bullet-native/)"
if [ "$NATIVE_CHANGES" = "" ];then NATIVE_CHANGES="$(git diff-tree --name-only "$GITHUB_SHA" "$nativeSnapshot" -- jme3-android-native/)"; fi
if [ "$NATIVE_CHANGES" = "" ];then NATIVE_CHANGES="$(git diff-tree --name-only "$GITHUB_SHA" "$nativeSnapshot" -- jme3-bullet-native-android/)"; fi
if [ "$NATIVE_CHANGES" = "" ];then NATIVE_CHANGES="$(git diff-tree --name-only "$GITHUB_SHA" "$nativeSnapshot" -- jme3-bullet/)"; fi
# The bulletUrl (in gradle.properties) might have changed.
if [ "$NATIVE_CHANGES" = "" ];then NATIVE_CHANGES="$(git diff-tree --name-only "$GITHUB_SHA" "$nativeSnapshot" -- gradle.properties)"; fi
fi
fi
# We do nothing if there is no change
if [ "$NATIVE_CHANGES" = "" ];
then
echo "No changes, skip."
else
if [ "${{ secrets.BINTRAY_GENERIC_REPO }}" = "" ];
then
echo "Configure the following secrets to enable native snapshot deployment"
echo "BINTRAY_GENERIC_REPO, BINTRAY_USER, BINTRAY_APIKEY"
else
# Deploy snapshot
bintray_uploadFile dist/jme3-natives.zip \
$GITHUB_SHA/$GITHUB_SHA/jme3-natives.zip \
${{ secrets.BINTRAY_GENERIC_REPO }} "content" "natives" \
${{ secrets.BINTRAY_USER }} \
${{ secrets.BINTRAY_APIKEY }} \
"https://github.com/${GITHUB_REPOSITORY}" \
"${{ secrets.BINTRAY_LICENSE }}" "true"
# We reference the snapshot by writing its commit hash in natives-snapshot.properties
echo "natives.snapshot=$GITHUB_SHA" > natives-snapshot.properties
# We commit the updated natives-snapshot.properties
git config --global user.name "Github Actions"
git config --global user.email "actions@users.noreply.github.com"
git add natives-snapshot.properties
git commit -m "[skip ci] update natives snapshot"
# Pull rebase from the remote repo, just in case there was a push in the meantime
git pull -q --rebase
# We need to calculate the header for git authentication
header=$(echo -n "ad-m:${{ secrets.GITHUB_TOKEN }}" | base64)
# Push
(git -c http.extraheader="AUTHORIZATION: basic $header" push origin "$branch" || true)
fi
fi
fi
# This job deploys the release
DeployRelease:
needs: [BuildJMonkey]
name: Deploy Release
runs-on: ubuntu-18.04
if: github.event_name == 'release'
steps:
# We need to clone everything again for uploadToMaven.sh ...
- name: Clone the repo
uses: actions/checkout@v2
with:
fetch-depth: 1
# Download all the stuff...
- name: Download maven artifacts
uses: actions/download-artifact@master
with:
name: maven
path: dist/maven
- name: Download release
uses: actions/download-artifact@master
with:
name: release
path: dist/release
- name: Deploy to github releases
run: |
# We need to get the release id (yeah, it's not the same as the tag)
echo "${GITHUB_EVENT_PATH}"
cat ${GITHUB_EVENT_PATH}
releaseId=$(jq --raw-output '.release.id' ${GITHUB_EVENT_PATH})
# Now that we have the id, we just upload the release zip from before
echo "Upload to release $releaseId"
filename="$(ls dist/release/*.zip)"
url="https://uploads.github.com/repos/${GITHUB_REPOSITORY}/releases/$releaseId/assets?name=$(basename $filename)"
echo "Upload to $url"
curl -L \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Content-Type: application/zip" \
--data-binary @"$filename" \
"$url"
- name: Deploy to bintray
run: |
source .github/actions/tools/uploadToMaven.sh
if [ "${{ secrets.BINTRAY_MAVEN_REPO }}" = "" ];
then
echo "Configure the following secrets to enable bintray deployment"
echo "BINTRAY_MAVEN_REPO, BINTRAY_USER, BINTRAY_APIKEY"
else
uploadAllToMaven dist/maven/ https://api.bintray.com/maven/${{ secrets.BINTRAY_MAVEN_REPO }} ${{ secrets.BINTRAY_USER }} ${{ secrets.BINTRAY_APIKEY }} "https://github.com/${GITHUB_REPOSITORY}" "${{ secrets.BINTRAY_LICENSE }}"
fi
# - name: Deploy to github package registry
# run: |
# source .github/actions/tools/uploadToMaven.sh
# registry="https://maven.pkg.github.com/$GITHUB_REPOSITORY"
# echo "Deploy to github package registry $registry"
# uploadAllToMaven dist/maven/ $registry "token" ${{ secrets.GITHUB_TOKEN }}
# Deploy the javadoc
DeployJavaDoc:
needs: [BuildJMonkey]
name: Deploy Javadoc
runs-on: ubuntu-18.04
if: github.event_name == 'release'
steps:
# We are going to need a deploy key for this, since we need
# to push to a different repo
- name: Set ssh key
run: |
mkdir -p ~/.ssh/
echo "${{ secrets.JAVADOC_GHPAGES_DEPLOY_PRIVKEY }}" > $HOME/.ssh/deploy.key
chmod 600 $HOME/.ssh/deploy.key
# We clone the javadoc repo
- name: Clone gh-pages
run: |
branch="gh-pages"
export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i $HOME/.ssh/deploy.key"
git clone --single-branch --branch "$branch" git@github.com:${{ secrets.JAVADOC_GHPAGES_REPO }} .
# Download the javadoc in the new directory "newdoc"
- name: Download javadoc
uses: actions/download-artifact@master
with:
name: javadoc
path: newdoc
# The actual deploy
- name: Deploy to github pages
run: |
set -f
IFS=$'\n'
# Get the tag for this release
version="`if [[ $GITHUB_REF == refs\/tags* ]]; then echo ${GITHUB_REF//refs\/tags\//}; fi`"
# If there is no tag, then we do nothing.
if [ "$version" != "" ];
then
echo "Deploy as $version"
# Remove any older version of the javadoc for this tag
if [ -d "$version" ];then rm -Rf "$version"; fi
# Rename newdoc with the version name
mv newdoc "$version"
# if there isn't an index.txt we create one (we need this to list the versions)
if [ ! -f "index.txt" ]; then echo "" > index.txt ; fi
index="`cat index.txt`"
# Check if this version is already in index.txt
addNew=true
for v in $index;
do
if [ "$v" = "$version" ];
then
echo "$v" "$version"
addNew=false
break
fi
done
# If not, we add it to the beginning
if [ "$addNew" = "true" ];
then
echo -e "$version\n$index" > index.txt
index="`cat index.txt`"
fi
# Regenerate the pages
chmod +x make.sh
./make.sh
# Configure git to use the deploy key
export GIT_SSH_COMMAND="ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i $HOME/.ssh/deploy.key"
# Commit the changes
git config --global user.name "Github Actions"
git config --global user.email "actions@users.noreply.github.com"
git add . || true
git commit -m "$version" || true
branch="gh-pages"
git push origin "$branch" --force || true
fi

48
.gitignore vendored

@ -1,48 +0,0 @@
**/nbproject/private/
**/.classpath
**/.settings
**/.project
**/.vscode
**/out/
/.gradle/
/.nb-gradle/
/.idea/
/dist/
/build/
/bin/
/netbeans/
/.classpath
/.project
/.settings
*.dll
*.so
*.jnilib
*.dylib
*.iml
*.class
*.jtxt
.gradletasknamecache
.DS_Store
/jme3-core/src/main/resources/com/jme3/system/version.properties
/jme3-*/build/
/jme3-*/bin/
/jme3-bullet-native/bullet3.zip
/jme3-bullet-native/bullet3-*/
/jme3-bullet-native/src/native/cpp/com_jme3_bullet_*.h
/jme3-android-native/openal-soft/
/jme3-android-native/OpenALSoft.zip
/jme3-android-native/src/native/jme_decode/STBI/
/jme3-android-native/src/native/jme_decode/Tremor/
/jme3-android-native/stb_image.h
/jme3-examples/private/
!/jme3-vr/src/main/resources/**/*.dylib
!/jme3-vr/src/main/resources/**/*.so
!/jme3-vr/src/main/resources/**/*.so.dbg
!/jme3-vr/src/main/resources/**/*.dll
!/jme3-vr/src/main/resources/**/*.pdb
/buildMaven.bat
/private
.travis.yml
appveyor.yml
javadoc_deploy
javadoc_deploy.pub

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<gradle-project-properties>
<!--DO NOT EDIT THIS FILE! - Used by the Gradle plugin of NetBeans.-->
<license-header>
<name>New BSD (3-clause) License</name>
<template>license.txt</template>
<property name="organization">jMonkeyEngine</property>
</license-header>
</gradle-project-properties>

@ -1,70 +0,0 @@
# How to contribute to jMonkeyEngine
First and foremost, you have to familiarize yourself with Git & GitHub. Dig through
[help.github.com](https://help.github.com/), [try.github.io](http://try.github.io/) and the [gh cheat sheet](https://github.com/tiimgreen/github-cheat-sheet/blob/master/README.md) if these are new topics for you. If you'd like to contribute with something other than code, just tell us about it on the forum.
## Communication
Communication always comes first. **All** code changes and other contributions should start with the [forum](http://hub.jmonkeyengine.org/). Make a thread to explain your change and show us the important bits of your code. If the code is too long to be posted within the forum’s code tags, please paste your code in a Gist or pastebin and link to the submission in your thread. You are required to register on our website in order to create threads. (We do support login via GitHub though).
### New Contributors
Check out the [Projects](https://github.com/jMonkeyEngine/jmonkeyengine/projects/1) tab, where the team has prioritized issues that you as a new contributor can undertake that will familiarize you to the workflow of contributing. This highlights some issues the team thinks would be a good start for new contributors but you are free to contribute on any other issues or integration you wish.
When you're ready to submit your code, just make a [pull request](https://help.github.com/articles/using-pull-requests).
- Do not commit your code until you have received proper feedback.
- In your commit log message, please refer back to the originating forum thread (example) for a ‘full circle’ reference. Also please [reference related issues](https://help.github.com/articles/closing-issues-via-commit-messages) by typing the issue hashtag.
- When committing, always be sure to run an update before you commit. If there is a conflict between the latest revision and your patch after the update, then it is your responsibility to track down the update that caused the conflict and determine the issue (and fix it). In the case where the breaking commit has no thread linked (and one cannot be found in the forum), then the contributor should contact an administrator and wait for feedback before committing.
- If your code is committed and it introduces new functionality, please edit the wiki accordingly. We can easily roll back to previous revisions, so just do your best; point us to it and we’ll see if it sticks!
p.s. We will try hold ourselves to a [certain standard](http://www.defmacro.org/2013/04/03/issue-etiquette.html) when it comes to GitHub etiquette. If at any point we fail to uphold this standard, let us know.
#### Core Contributors
Developers in the Contributors team can push directly to Main instead of submitting pull requests, however for new features it is often a good idea to do a pull request as a means to get a last code review.
## Customs around integration, branching, tagging, and releases
- Most pull requests are integrated directly into the master branch of the repository.
- Integrators should note, unless the history of the pull request is important, it should be integrated to a single commit using “squash and merge”. If the history is important, favor “rebase and merge”. Don’t create a merge commit unless GitHub cannot rebase the PR.
- For each major release (such as v3.0 or v3.3), an appropriately named release branch is created in the repository.
- For each minor (or “dot-dot”) release (such as v3.2.3), an appropriately named tag is created in the repository.
- In general, library changes that plausibly might break existing apps appear only in major releases, not minor ones.
## Building the engine
1. Install [Gradle](http://www.gradle.org/)
2. Navigate to the project directory and run 'gradle build' from command line to build the engine.
## Best Practices
### Git essentials
- [Creating good pull requests](http://seesparkbox.com/foundry/creating_good_pull_requests)
- [How to write the perfect pull request](https://github.com/blog/1943-how-to-write-the-perfect-pull-request?utm_content=buffer0eb16&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer)
### Testing
general testing tips? WIP
### Code Quality
We generally abide by the standard Java Code Conventions. Besides that, just make an effort to write elegant code:
1. Handles errors gracefully
2. Only reinvents the wheel when there is a measurable benefit in doing so.
3. Has consistent naming conventions.
4. Has comments around ugly code explaining why it is ugly.
5. Compiles (or runs if interpreted) without warnings.
## Reporting bugs
1. Start by searching the [forum](http://hub.jmonkeyengine.org) and GH issue tracker for duplicates.
2. Create a new issue, explaining the problem in proper detail (templates pending).
## Documentation
- How to edit the [wiki](https://github.com/jMonkeyEngine/wiki).
- How to edit JavaDocs - WIP

@ -1,29 +0,0 @@
Copyright (c) 2009-2020 jMonkeyEngine
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of 'jMonkeyEngine' nor the names of its contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

@ -1,53 +0,0 @@
jMonkeyEngine
=============
[![Build Status](https://github.com/jMonkeyEngine/jmonkeyengine/workflows/Build%20jMonkeyEngine/badge.svg)](https://github.com/jMonkeyEngine/jmonkeyengine/actions)
jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge. 3.2.4 is the latest stable version of the jMonkeyEngine 3 SDK, a complete game development suite. We'll release 3.2.x updates until the major 3.3 release arrives.
The engine is used by several commercial game studios and computer-science courses. Here's a taste:
![jME3 Games Mashup](https://i.imgur.com/nF8WOW6.jpg)
- [jME powered games on IndieDB](http://www.indiedb.com/engines/jmonkeyengine/games)
- [Maker's Tale](http://steamcommunity.com/sharedfiles/filedetails/?id=93461954t)
- [Boardtastic 2](https://boardtastic-2.fileplanet.com/apk)
- [Attack of the Gelatinous Blob](https://attack-gelatinous-blob.softwareandgames.com/)
- [Mythruna](http://mythruna.com/)
- [PirateHell (on Steam)](https://store.steampowered.com/app/321080/Pirate_Hell/)
- [3089 (on Steam)](http://store.steampowered.com/app/263360/)
- [3079 (on Steam)](http://store.steampowered.com/app/259620/)
- [Lightspeed Frontier (on Steam)](https://store.steampowered.com/app/548650/Lightspeed_Frontier/)
- [Skullstone](http://www.skullstonegame.com/)
- [Spoxel (on Steam)](https://store.steampowered.com/app/746880/Spoxel/)
- [Nine Circles of Hell (on Steam)](https://store.steampowered.com/app/1200600/Nine_Circles_of_Hell/)
- [Leap](https://gamejolt.com/games/leap/313308)
- [Jumping Jack Flag](http://timealias.bplaced.net/jack/)
## Getting started
Go to https://github.com/jMonkeyEngine/sdk/releases to download the jMonkeyEngine SDK.
[Read the wiki](https://jmonkeyengine.github.io/wiki) for a complete install guide. Power up with some SDK Plugins and AssetPacks and you are off to the races. At this point you're gonna want to [join the forum](http://hub.jmonkeyengine.org/) so our tribe can grow stronger.
Note: The master branch on GitHub is a development version of the engine and is NOT MEANT TO BE USED IN PRODUCTION, it will break constantly during development of the stable jME versions!
### Technology Stack
- Java
- NetBeans Platform
- Gradle
Plus a bunch of awesome libraries & tight integrations like Bullet, NiftyGUI and other goodies.
### Documentation
Did you miss it? Don't sweat it, [here it is again](https://jmonkeyengine.github.io/wiki).
### Contributing
Read our [contribution guide](https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/CONTRIBUTING.md).
### License
New BSD (3-clause) License. In other words, you do whatever makes you happy!

@ -1,29 +0,0 @@
//
// This file is to be applied to some subproject.
//
apply plugin: 'com.jfrog.bintray'
bintray {
user = bintray_user
key = bintray_api_key
configurations = ['archives']
dryRun = false
pkg {
repo = 'org.jmonkeyengine'
userOrg = 'jmonkeyengine'
name = project.name
desc = POM_DESCRIPTION
websiteUrl = POM_URL
licenses = ['BSD New']
vcsUrl = POM_SCM_URL
labels = ['jmonkeyengine']
}
}
bintrayUpload.dependsOn(writeFullPom)
bintrayUpload.onlyIf {
(bintray_api_key.length() > 0) &&
!(version ==~ /.*SNAPSHOT/)
}

@ -1,263 +0,0 @@
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.4'
classpath 'me.tatarka:gradle-retrolambda:3.7.1'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
apply plugin: 'base'
apply from: file('version.gradle')
apply plugin: 'me.tatarka.retrolambda'
// This is applied to all sub projects
subprojects {
if(!project.name.equals('jme3-android-examples')) {
apply from: rootProject.file('common.gradle')
if (!project.name.equals('jme3-testdata')) {
apply from: rootProject.file('bintray.gradle')
}
} else {
apply from: rootProject.file('common-android-app.gradle')
}
}
task run(dependsOn: ':jme3-examples:run') {
description = 'Run the jME3 examples'
}
defaultTasks 'run'
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}
}
}
}
}
}
}
}
task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"Package the nightly zip distribution"){
archiveName "jME" + jmeFullVersion + ".zip"
into("/") {
from {"./dist"}
}
into("/sources") {
from {"$buildDir/libDist/sources"}
}
}
task copyLibs(type: Copy){
// description 'Copies the engine dependencies to build/libDist'
from {
subprojects*.configurations*.compile*.copyRecursive({ !(it instanceof ProjectDependency); })*.resolve()
}
into "$buildDir/libDist/lib-ext" //buildDir.path + '/' + libsDirName + '/lib'
}
task dist(dependsOn: [':jme3-examples:dist', 'mergedJavadoc']){
description 'Creates a jME3 examples distribution with all jme3 binaries, sources, javadoc and external libraries under ./dist'
}
task mergedJavadoc(type: Javadoc, description: 'Creates Javadoc from all the projects.') {
title = 'jMonkeyEngine3'
destinationDir = mkdir("dist/javadoc")
options.encoding = 'UTF-8'
// Allows Javadoc to be generated on Java 8 despite doclint errors.
if (JavaVersion.current().isJava8Compatible()) {
options.addStringOption('Xdoclint:none', '-quiet')
}
options.overview = file("javadoc-overview.html")
// Note: The closures below are executed lazily.
source subprojects.collect {project ->
project.sourceSets*.allJava
}
classpath = files(subprojects.collect {project ->
project.sourceSets*.compileClasspath})
// source {
// subprojects*.sourceSets*.main*.allSource
// }
classpath.from {
subprojects*.configurations*.compile*.copyRecursive({ !(it instanceof ProjectDependency); })*.resolve()
}
}
clean.dependsOn('cleanMergedJavadoc')
task cleanMergedJavadoc(type: Delete) {
delete file('dist/javadoc')
}
task mergedSource(type: Copy){
}
ext {
ndkCommandPath = ""
ndkExists = false
}
task configureAndroidNDK {
def ndkBuildFile = "ndk-build"
// if windows, use ndk-build.cmd instead
if (System.properties['os.name'].toLowerCase().contains('windows')) {
ndkBuildFile = "ndk-build.cmd"
}
// ndkPath is defined in the root project gradle.properties file
String ndkBuildPath = ndkPath + File.separator + ndkBuildFile
//Use the environment variable for the NDK location if defined
if (System.env.ANDROID_NDK != null) {
ndkBuildPath = System.env.ANDROID_NDK + File.separator + ndkBuildFile
}
if (new File(ndkBuildPath).exists()) {
ndkExists = true
ndkCommandPath = ndkBuildPath
}
}
gradle.rootProject.ext.set("usePrebuildNatives", buildNativeProjects!="true");
if (skipPrebuildLibraries != "true" && buildNativeProjects != "true") {
String rootPath = rootProject.projectDir.absolutePath
Properties nativesSnasphotProp = new Properties()
File nativesSnasphotPropF = new File("${rootPath}/natives-snapshot.properties");
if (nativesSnasphotPropF.exists()) {
nativesSnasphotPropF.withInputStream { nativesSnasphotProp.load(it) }
String nativesSnasphot = nativesSnasphotProp.getProperty("natives.snapshot");
String nativesUrl = PREBUILD_NATIVES_URL.replace('${natives.snapshot}', nativesSnasphot)
println "Use natives snapshot: " + nativesUrl
String nativesZipFile = "${rootPath}" + File.separator + "build" + File.separator + nativesSnasphot + "-natives.zip"
String nativesPath = "${rootPath}" + File.separator + "build" + File.separator + "native"
task getNativesZipFile {
outputs.file nativesZipFile
doFirst {
File target = file(nativesZipFile);
println("Download natives from " + nativesUrl + " to " + nativesZipFile);
target.getParentFile().mkdirs();
ant.get(src: nativesUrl, dest: target);
}
}
task extractPrebuiltNatives {
inputs.file nativesZipFile
outputs.dir nativesPath
dependsOn getNativesZipFile
doFirst {
for (File src : zipTree(nativesZipFile)) {
String srcRel = src.getAbsolutePath().substring((int) (nativesZipFile.length() + 1));
srcRel = srcRel.substring(srcRel.indexOf(File.separator) + 1);
File dest = new File(nativesPath + File.separator + srcRel);
boolean doCopy = !(dest.exists() && dest.lastModified() > src.lastModified())
if (doCopy) {
println("Copy " + src + " " + dest);
dest.getParentFile().mkdirs();
Files.copy(src.toPath(), dest.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
}
}
}
assemble.dependsOn extractPrebuiltNatives
}
}
//class IncrementalReverseTask extends DefaultTask {
// @InputDirectory
// def File inputDir
//
// @OutputDirectory
// def File outputDir
//
// @Input
// def inputProperty
//
// @TaskAction
// void execute(IncrementalTaskInputs inputs) {
// println inputs.incremental ? "CHANGED inputs considered out of date" : "ALL inputs considered out of date"
// inputs.outOfDate { change ->
// println "out of date: ${change.file.name}"
// def targetFile = new File(outputDir, change.file.name)
// targetFile.text = change.file.text.reverse()
// }
//
// inputs.removed { change ->
// println "removed: ${change.file.name}"
// def targetFile = new File(outputDir, change.file.name)
// targetFile.delete()
// }
// }
//}
//allprojects {
// tasks.withType(JavaExec) {
// enableAssertions = true // false by default
// }
// tasks.withType(Test) {
// enableAssertions = true // true by default
// }
//}
wrapper {
gradleVersion = '5.6.4'
}
retrolambda {
javaVersion JavaVersion.VERSION_1_7
incremental true
jvmArgs '-noverify'
}

@ -0,0 +1,147 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="jME3-SDK" default="default" basedir=".">
<description>Builds, tests, and runs the jMonkeyEngine3 SDK.</description>
<fail message="Please build using Ant 1.7.1 or higher.">
<condition>
<not>
<antversion atleast="1.7.1"/>
</not>
</condition>
</fail>
<target name="default" depends="zip"/>
<target name="build" description="Builds the complete SDK, copies over engine libraries." depends="-check-platform, -update-sdk-platform-config">
<ant dir="engine" target="update-sdk"/>
<ant dir="sdk" target="build"/>
</target>
<target name="build-engine" description="Builds the engine libraries only">
<ant dir="engine" target="clean"/>
<ant dir="engine" target="jar"/>
<ant dir="engine" target="javadoc"/>
<ant dir="engine" target="create-zip-distribution"/>
</target>
<target name="clean" description="Clean all build products" depends="-check-platform, -update-sdk-platform-config">
<ant dir="engine" target="clean"/>
<ant dir="sdk" target="clean"/>
</target>
<target name="run" description="Runs the SDK" depends="-check-platform, -update-sdk-platform-config">
<ant dir="engine" target="update-sdk"/>
<ant dir="sdk" target="run"/>
</target>
<target name="zip" description="Builds the complete SDK and packs it as a ZIP file">
<ant dir="engine" target="update-sdk"/>
<ant dir="sdk" target="build-zip"/>
<property file="sdk/nbproject/project.properties"/>
<move file="sdk/dist/${app.name}.zip" tofile="./jMonkeyEngine-SDK-${app.version}-NoBundles.zip"/>
</target>
<target name="update-platform" description="Updates the base platform to the latest available build" depends="-remove-platform,-check-platform"/>
<target name="-check-platform" depends="-check-platform-present" unless="platform.present">
<property file="sdk/nbproject/project.properties"/>
<echo message="Downloading base platform, this only has to be done once."/>
<get src="${netbeans.platform.url}" dest="./platform-base.zip" skipexisting="false"/>
<unzip src="platform-base.zip" dest="./"/>
<antcall target="-update-sdk-platform-config"/>
<delete file="platform-base.zip"/>
</target>
<target name="-check-platform-present">
<available file="sdk/nbproject/private/platform-private.properties" property="platform.present"/>
</target>
<target name="-remove-platform">
<delete dir="netbeans" failonerror="false"/>
<delete file="sdk/nbproject/private/platform-private.properties" failonerror="false"/>
</target>
<target name="create-platform-config" depends="-update-sdk-platform-config">
</target>
<target name="-update-sdk-platform-config">
<property name="nbplatform.dir" location="netbeans"/>
<mkdir dir="sdk/nbproject/private"/>
<echo file="sdk/nbproject/private/platform-private.properties"
message="nbplatform.default.netbeans.dest.dir=${nbplatform.dir}&#xD;&#xA;"/>
<echo file="sdk/nbproject/private/platform-private.properties"
message="nbplatform.default.harness.dir=${nbplatform.dir}${file.separator}harness&#xD;&#xA;" append="true"/>
<replace file="sdk/nbproject/private/platform-private.properties" token="\" value="\\"/>
</target>
<!--
****************************************************************
Only Relevant for building nightly on Hudson server from here on
****************************************************************
-->
<target name="hudson-nightly" depends="-hudson-revert-changes, -check-platform, -update-sdk-platform-config, -hudson-build-engine">
<!--ant dir="engine" target="copy-javadoc"/-->
<ant dir="engine" target="create-zip-distribution"/>
<ant dir="sdk" target="hudson-nightly"/>
</target>
<target name="hudson-stable" depends="-hudson-revert-changes, -check-platform, -update-sdk-platform-config, -hudson-build-engine">
<!--ant dir="engine" target="dist"/-->
<ant dir="engine" target="create-zip-distribution"/>
<ant dir="sdk" target="hudson-stable"/>
</target>
<target name="hudson-release" depends="-hudson-revert-changes, -check-platform, -update-sdk-platform-config, -hudson-build-engine">
<ant dir="sdk" target="hudson-release"/>
</target>
<target name="-hudson-revert-changes">
<exec executable="svn" dir="engine" failonerror="true">
<arg value="cleanup" />
</exec>
<exec executable="svn" dir="engine">
<arg value="revert" />
<arg value="-R" />
<arg value="." />
</exec>
<exec executable="svn" dir="engine">
<arg value="cleanup" />
</exec>
<exec executable="svn" dir="engine">
<arg value="update" />
</exec>
<exec executable="svn" dir="sdk">
<arg value="cleanup" />
</exec>
<exec executable="svn" dir="sdk">
<arg value="revert" />
<arg value="." />
<arg value="-R" />
</exec>
<exec executable="svn" dir="sdk">
<arg value="cleanup" />
</exec>
<exec executable="svn" dir="sdk">
<arg value="update" />
</exec>
<exec executable="svn" dir=".">
<arg value="unlock" />
<arg value="engine" />
</exec>
<exec executable="svn" dir=".">
<arg value="unlock" />
<arg value="sdk" />
</exec>
</target>
<target name="-hudson-build-engine">
<!--ant dir="engine" target="build-bullet-natives"/-->
<ant dir="engine" target="jar"/>
<ant dir="engine" target="javadoc"/>
<ant dir="engine" target="update-sdk-nobuild"/>
</target>
</project>

@ -1,13 +0,0 @@
apply plugin: 'com.android.application'
group = 'org.jmonkeyengine'
version = jmeFullVersion
sourceCompatibility = '1.6'
repositories {
mavenCentral()
maven {
url "http://nifty-gui.sourceforge.net/nifty-maven-repo"
}
}

@ -1,137 +0,0 @@
//
// This file is to be applied to every subproject.
//
apply plugin: 'java'
apply plugin: 'groovy'
apply plugin: 'maven'
group = 'org.jmonkeyengine'
version = jmeFullVersion
sourceCompatibility = '1.8'
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
gradle.projectsEvaluated {
tasks.withType(JavaCompile) { // compile-time options:
options.compilerArgs << '-Xlint:unchecked'
}
}
repositories {
mavenCentral()
maven {
url "http://nifty-gui.sourceforge.net/nifty-maven-repo"
}
flatDir {
dirs rootProject.file('lib')
}
}
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: '3.0.0'
testCompile group: 'org.easytesting', name: 'fest-assert-core', version: '2.0M10'
testCompile 'org.codehaus.groovy:groovy-all:2.5.8'
}
// Uncomment if you want to see the status of every test that is run and
// the test output.
/*
test {
testLogging {
events "passed", "skipped", "failed", "standardOut", "standardError"
}
}
*/
jar {
manifest {
attributes 'Implementation-Title': 'jMonkeyEngine',
'Implementation-Version': jmeFullVersion
}
}
javadoc {
failOnError = false
options.memberLevel = org.gradle.external.javadoc.JavadocMemberLevel.PROTECTED
options.docTitle = "jMonkeyEngine ${jmeFullVersion} ${project.name} Javadoc"
options.windowTitle = "jMonkeyEngine ${jmeFullVersion} ${project.name} Javadoc"
options.header = "<b>jMonkeyEngine ${jmeFullVersion} ${project.name}</b>"
options.author = "true"
options.use = "true"
options.charSet = "UTF-8"
options.encoding = "UTF-8"
//disable doclint for JDK8, more quiet output
if (JavaVersion.current().isJava8Compatible()){
options.addStringOption('Xdoclint:none', '-quiet')
}
}
test {
testLogging {
exceptionFormat = 'full'
}
}
task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') {
classifier = 'sources'
from sourceSets*.allSource
}
task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from the javadoc files.') {
classifier = 'javadoc'
from javadoc.destinationDir
}
ext.pomConfig = {
name POM_NAME
description POM_DESCRIPTION
url POM_URL
inceptionYear POM_INCEPTION_YEAR
scm {
url POM_SCM_URL
connection POM_SCM_CONNECTION
developerConnection POM_SCM_DEVELOPER_CONNECTION
}
licenses {
license {
name POM_LICENSE_NAME
url POM_LICENSE_URL
distribution POM_LICENSE_DISTRIBUTION
}
}
developers {
developer {
name 'jMonkeyEngine Team'
id 'jMonkeyEngine'
}
}
}
// workaround to be able to use same custom pom with 'maven' and 'bintray' plugin
task writeFullPom {
ext.pomFile = "$mavenPomDir/${project.name}-${project.version}.pom"
outputs.file pomFile
doLast {
pom {
project pomConfig
}.writeTo(pomFile)
}
}
assemble.dependsOn(writeFullPom)
install.dependsOn(writeFullPom)
uploadArchives.dependsOn(writeFullPom)
artifacts {
archives jar
archives sourcesJar
if (buildJavaDoc == "true") {
archives javadocJar
}
archives writeFullPom.outputs.files[0]
}

@ -0,0 +1 @@
X-Comment: jMonkeyEngine 3.0

Binary file not shown.

@ -0,0 +1,632 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" name="jMonkeyEngine3" default="default" basedir=".">
<description>Builds, tests, and runs the jMonkeyEngine3 core engine.</description>
<import file="nbproject/build-impl.xml"/>
<target depends="jar,javadoc" description="Build and test whole project." name="default"/>
<target name="build-bullet-natives" description="uses native build tools to build the bulletjme binary (read bullet-native-build.txt for more info)" depends="jar">
<ant antfile="nbproject/build-bullet-natives.xml" target="build-bullet-natives"/>
</target>
<target name="run-bullet-native" description="runs the jMonkeyEngine3 demos using native bullet" depends="init">
<copy file="${dist.dir}/opt/native-bullet/jME3-bullet-natives.jar" todir="${dist.dir}/lib" failonerror="false"/>
<copy file="${dist.dir}/opt/native-bullet/jME3-bullet.jar" todir="${dist.dir}/lib" failonerror="false"/>
<delete file="${dist.dir}/lib/jME3-jbullet.jar" failonerror="false"/>
<exec executable="java" dir="dist">
<arg line="${run.jvmargs} -jar jMonkeyEngine3.jar"/>
</exec>
</target>
<target name="build-openal-soft-natives" description="uses native build tools to build the openalsoftjme shared library for Android" depends="jar">
<ant antfile="nbproject/build-openal-soft-natives.xml" target="build-openal-soft-natives"/>
</target>
<target name="-do-compile" description="Overrides default compile target to separate the build into folders" depends="init,deps-jar,-pre-pre-compile,-pre-compile, -copy-persistence-xml,-compile-depend" if="have.sources">
<mkdir dir="${build.dir}/core"/>
<mkdir dir="${build.dir}/effects"/>
<mkdir dir="${build.dir}/networking"/>
<mkdir dir="${build.dir}/plugins"/>
<mkdir dir="${build.dir}/jogg"/>
<mkdir dir="${build.dir}/blender"/>
<mkdir dir="${build.dir}/desktop"/>
<mkdir dir="${build.dir}/terrain"/>
<mkdir dir="${build.dir}/jbullet"/>
<mkdir dir="${build.dir}/bullet"/>
<mkdir dir="${build.dir}/niftygui"/>
<mkdir dir="${build.dir}/jogl"/>
<mkdir dir="${build.dir}/lwjgl"/>
<mkdir dir="${build.dir}/android"/>
<mkdir dir="${build.dir}/ios"/>
<echo>Compile Core</echo>
<j2seproject3:javac
destdir="${build.dir}/core"
srcdir="${src.core.dir}:${src.core-data.dir}:${src.core-plugins.dir}:${src.tools.dir}"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/core">
<fileset dir="${src.core.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.core-data.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.core-plugins.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.tools.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Effects</echo>
<j2seproject3:javac
destdir="${build.dir}/effects"
srcdir="${src.core-effects.dir}"
classpath="${javac.classpath}:${build.dir}/core"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/effects">
<fileset dir="${src.core-effects.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Networking</echo>
<j2seproject3:javac
destdir="${build.dir}/networking"
srcdir="${src.networking.dir}"
classpath="${javac.classpath}:${build.dir}/core"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/networking">
<fileset dir="${src.networking.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Plugins</echo>
<j2seproject3:javac
destdir="${build.dir}/plugins"
srcdir="${src.ogre.dir}:${src.xml.dir}"
classpath="${javac.classpath}:${build.dir}/core"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/plugins">
<fileset dir="${src.ogre.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.xml.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Jogg</echo>
<j2seproject3:javac
destdir="${build.dir}/jogg"
srcdir="${src.jogg.dir}"
classpath="${javac.classpath}:${build.dir}/core"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/jogg">
<fileset dir="${src.jogg.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Desktop</echo>
<j2seproject3:javac
destdir="${build.dir}/desktop"
srcdir="${src.desktop.dir}"
classpath="${javac.classpath}:${build.dir}/core"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/desktop">
<fileset dir="${src.desktop.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Blender Loader</echo>
<j2seproject3:javac
destdir="${build.dir}/blender"
srcdir="${src.blender.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/plugins:${build.dir}/desktop"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/blender">
<fileset dir="${src.blender.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Terrain</echo>
<j2seproject3:javac
destdir="${build.dir}/terrain"
srcdir="${src.terrain.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/desktop"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/terrain">
<fileset dir="${src.terrain.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile jBullet</echo>
<j2seproject3:javac
destdir="${build.dir}/jbullet"
srcdir="${src.jbullet.dir}:${src.bullet-common.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/terrain"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/jbullet">
<fileset dir="${src.jbullet.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.bullet-common.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Bullet</echo>
<j2seproject3:javac
destdir="${build.dir}/bullet"
srcdir="${src.bullet.dir}:${src.bullet-common.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/terrain"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/bullet">
<fileset dir="${src.bullet.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
<fileset dir="${src.bullet-common.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Nifty</echo>
<j2seproject3:javac
destdir="${build.dir}/niftygui"
srcdir="${src.niftygui.dir}"
classpath="${javac.classpath}:${build.dir}/core"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/niftygui">
<fileset dir="${src.niftygui.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Lwjgl</echo>
<j2seproject3:javac
destdir="${build.dir}/lwjgl"
srcdir="${src.lwjgl.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/desktop"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/lwjgl">
<fileset dir="${src.lwjgl.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile JOGL</echo>
<j2seproject3:javac
destdir="${build.dir}/jogl"
srcdir="${src.jogl.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/desktop"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/jogl">
<fileset dir="${src.jogl.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
<echo>Compile Android</echo>
<j2seproject3:javac
destdir="${build.dir}/android"
srcdir="${src.android.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/plugins"
gensrcdir="${build.generated.sources.dir}"
excludes="${excludes},**/jme3test/**"
/>
<copy todir="${build.dir}/android">
<fileset dir="${src.android.dir}" excludes="${build.classes.excludes},${excludes},**/jme3test/**,**/res/**" includes="${includes}"/>
</copy>
<echo>Compile iOS</echo>
<j2seproject3:javac
destdir="${build.dir}/ios"
srcdir="${src.ios.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/plugins"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.dir}/ios">
<fileset dir="${src.ios.dir}" excludes="${build.classes.excludes},${excludes},**/jme3test/**,**/res/**" includes="${includes}"/>
</copy>
<echo>Compile Tests</echo>
<j2seproject3:javac
destdir="${build.classes.dir}"
srcdir="${src.test.dir}"
classpath="${javac.classpath}:${build.dir}/core:${build.dir}/effects:${build.dir}/networking:${build.dir}/plugins:${build.dir}/jogg:${build.dir}/desktop:${build.dir}/blender:${build.dir}/terrain:${build.dir}/jbullet:${build.dir}/niftygui"
gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.classes.dir}">
<fileset dir="${src.test.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy>
</target>
<target name="-pre-jar" description="Prepares the separate jME3-xxx.jar files and modifies properties for libraries to be used for lib/ folder, Manifest etc.">
<echo>Building Engine JAR files..</echo>
<jar jarfile="${build.dir}/jME3-core.jar" basedir="${build.dir}/core" compress="true"/>
<jar jarfile="${build.dir}/jME3-effects.jar" basedir="${build.dir}/effects" compress="true"/>
<jar jarfile="${build.dir}/jME3-networking.jar" basedir="${build.dir}/networking" compress="true"/>
<jar jarfile="${build.dir}/jME3-plugins.jar" basedir="${build.dir}/plugins" compress="true"/>
<jar jarfile="${build.dir}/jME3-jogg.jar" basedir="${build.dir}/jogg" compress="true"/>
<jar jarfile="${build.dir}/jME3-desktop.jar" basedir="${build.dir}/desktop" compress="true"/>
<jar jarfile="${build.dir}/jME3-blender.jar" basedir="${build.dir}/blender" compress="true"/>
<jar jarfile="${build.dir}/jME3-terrain.jar" basedir="${build.dir}/terrain" compress="true"/>
<jar jarfile="${build.dir}/jME3-jbullet.jar" basedir="${build.dir}/jbullet" compress="true"/>
<jar jarfile="${build.dir}/jME3-bullet.jar" basedir="${build.dir}/bullet" compress="true"/>
<jar jarfile="${build.dir}/jME3-niftygui.jar" basedir="${build.dir}/niftygui" compress="true"/>
<jar jarfile="${build.dir}/jME3-lwjgl.jar" basedir="${build.dir}/lwjgl" compress="true"/>
<jar jarfile="${build.dir}/jME3-jogl.jar" basedir="${build.dir}/jogl" compress="true"/>
<jar jarfile="${build.dir}/jME3-android.jar" basedir="${build.dir}/android" compress="true"/>
<jar jarfile="${build.dir}/jME3-ios.jar" basedir="${build.dir}/ios" compress="true"/>
<echo>Building TestData JAR file..</echo>
<jar jarfile="${build.dir}/jME3-testdata.jar" basedir="test-data" compress="true"/>
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<property location="${build.dir}" name="build.dir.resolved"/>
<property location="test-data" name="testdata.dir.resolved"/>
<property location="lib/android/android.jar" name="android.jar.resolved"/>
<property location="lib/openal-soft/jME3-openal-soft-natives-android.jar" name="openal-soft.jar.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
<map from="${build.dir.resolved}/core" to="${build.dir}/jME3-core.jar"/>
<map from="${build.dir.resolved}/effects" to="${build.dir}/jME3-effects.jar"/>
<map from="${build.dir.resolved}/networking" to="${build.dir}/jME3-networking.jar"/>
<map from="${build.dir.resolved}/plugins" to="${build.dir}/jME3-plugins.jar"/>
<map from="${build.dir.resolved}/jogg" to="${build.dir}/jME3-jogg.jar"/>
<map from="${build.dir.resolved}/desktop" to="${build.dir}/jME3-desktop.jar"/>
<map from="${build.dir.resolved}/blender" to="${build.dir}/jME3-blender.jar"/>
<map from="${build.dir.resolved}/terrain" to="${build.dir}/jME3-terrain.jar"/>
<map from="${build.dir.resolved}/jbullet" to="${build.dir}/jME3-jbullet.jar"/>
<map from="${build.dir.resolved}/bullet" to="${build.dir}/jME3-bullet.jar"/>
<map from="${build.dir.resolved}/niftygui" to="${build.dir}/jME3-niftygui.jar"/>
<map from="${build.dir.resolved}/lwjgl" to="${build.dir}/jME3-lwjgl.jar"/>
<map from="${build.dir.resolved}/jogl" to="${build.dir}/jME3-jogl.jar"/>
<map from="${build.dir.resolved}/android" to=""/>
<map from="${build.dir.resolved}/openal-soft" to=""/>
<map from="${build.dir.resolved}/ios" to=""/>
<map from="${testdata.dir.resolved}" to="${build.dir.resolved}/jME3-testdata.jar"/>
<map from="${android.jar.resolved}" to=""/>
</pathconvert>
</target>
<target name="-post-jar">
<echo>Moving optional packages</echo>
<mkdir dir="${dist.dir}/opt"/>
<mkdir dir="${dist.dir}/opt/native-bullet"/>
<mkdir dir="${dist.dir}/opt/jogl"/>
<!--ant antfile="nbproject/build-bullet-natives.xml" target="bullet-api-diff"/-->
<!--move file="bullet-api-diff.html" todir="${dist.dir}/opt/native-bullet" overwrite="true"/-->
<move file="${dist.dir}/lib/jME3-bullet.jar" todir="${dist.dir}/opt/native-bullet" overwrite="true"/>
<move file="${dist.dir}/lib/jME3-bullet-natives.jar" todir="${dist.dir}/opt/native-bullet" overwrite="true"/>
<copy file="lib/bullet/jME3-bullet-natives-android.jar" todir="${dist.dir}/opt/native-bullet" overwrite="true"/>
<move file="${dist.dir}/lib/jME3-jogl.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-linux-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-linux-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-linux-armv6.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-linux-armv6hf.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-solaris-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-solaris-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-macosx-universal.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-windows-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/joal-natives-windows-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-linux-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-linux-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-linux-armv6.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-linux-armv6hf.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-solaris-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-solaris-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-macosx-universal.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-windows-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/gluegen-rt-natives-windows-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-linux-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-linux-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-linux-armv6.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-linux-armv6hf.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-solaris-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-solaris-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-macosx-universal.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-windows-i586.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<copy file="${dist.dir}/../lib/jogl/jogl-all-natives-windows-amd64.jar" todir="${dist.dir}/opt/jogl" overwrite="true"/>
<mkdir dir="${dist.dir}/opt/android"/>
<copy file="${build.dir}/jME3-android.jar" todir="${dist.dir}/opt/android" overwrite="true"/>
<mkdir dir="${dist.dir}/opt/native-openal-soft"/>
<copy file="lib/openal-soft/jME3-openal-soft-natives-android.jar" todir="${dist.dir}/opt/native-openal-soft" overwrite="true"/>
<mkdir dir="${dist.dir}/opt/ios"/>
<copy file="${build.dir}/jME3-ios.jar" todir="${dist.dir}/opt/ios" overwrite="true"/>
</target>
<!--
****************************************************************
Only Relevant for building the SDK from here on
****************************************************************
-->
<target name="update-sdk" depends="jar, javadoc" description="convenience target to transfer jme3 libraries to sdk (jMonkeyPlatform)">
<antcall target="-do-update-sdk" inheritall="true">
<param name="jmp_dir" value="../sdk/"/>
</antcall>
</target>
<target name="-do-update-sdk">
<fileset id="jme3-jars" dir="build">
<include name="**/jME3**.jar"/>
<exclude name="**/jME3-testdata.jar"/>
<exclude name="**/jME3-bullet-natives.jar"/>
<exclude name="**/jME3-bullet-natives-android.jar"/>
<exclude name="**/jME3-openal-soft-natives-android.jar"/>
</fileset>
<fileset id="jme3-sdk-jars" dir="build">
<include name="**/jME3**.jar"/>
<exclude name="**/jME3-android.jar"/>
<exclude name="**/jME3-testdata.jar"/>
<exclude name="**/jME3-bullet.jar"/>
<exclude name="**/jME3-bullet-natives.jar"/>
<exclude name="**/jME3-bullet-natives-android.jar"/>
<exclude name="**/jME3-openal-soft-natives-android.jar"/>
</fileset>
<fileset id="jme3-bullet-native-jars" dir="${dist.dir}/opt/native-bullet">
<include name="**/jME3-bullet-native**.jar"/>
</fileset>
<fileset id="jme3-openal-soft-natives-jars" dir="${dist.dir}/opt/native-openal-soft">
<include name="**/jME3-openal-soft-natives-android.jar"/>
</fileset>
<fileset id="jme3-testdata-jars" dir="build">
<include name="**/jME3-testdata.jar"/>
</fileset>
<fileset id="jme3-lwjgl-native-jars" dir="${dist.dir}/lib">
<include name="**/jME3-lwjgl-natives.jar"/>
</fileset>
<fileset id="jme3-external-libraries" dir="${dist.dir}/lib/">
<exclude name="jME3-**"/>
<exclude name="**/nifty-examples.jar"/>
</fileset>
<echo>Clearing old files</echo>
<delete dir="${jmp_dir}/JME3TestsTemplate/src/"/>
<delete dir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/"/>
<delete dir="${jmp_dir}/jme3-core-libraries/release/modules/ext/"/>
<delete dir="${jmp_dir}/jme3-project-libraries/release/libs/"/>
<delete dir="${jmp_dir}/jme3-project-baselibs/release/libs/"/>
<delete dir="${jmp_dir}/jme3-project-testdata/release/libs/"/>
<echo>Copying jMonkeyPlatform jME3 libs</echo>
<copy toDir="${jmp_dir}/jme3-core-baselibs/release/modules/ext/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-sdk-jars"/>
<!--natives need to be in jme3 package for jme to work in jMP-->
<fileset refid="jme3-lwjgl-native-jars"/>
</copy>
<echo>Copying jMonkeyPlatform external libraries</echo>
<copy todir="${jmp_dir}/jme3-core-libraries/release/modules/ext/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-external-libraries"/>
</copy>
<echo>Copying Project jME3 libs</echo>
<copy toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-jars"/>
<fileset refid="jme3-openal-soft-natives-jars"/>
</copy>
<echo>Copying Project external libraries</echo>
<copy todir="${jmp_dir}/jme3-project-libraries/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-external-libraries"/>
<fileset refid="jme3-lwjgl-native-jars"/>
<fileset refid="jme3-bullet-native-jars"/>
</copy>
<echo>Copying Test Project Data</echo>
<copy toDir="${jmp_dir}/jme3-project-testdata/release/libs/" overwrite="true" failonerror="true" verbose="false">
<fileset refid="jme3-testdata-jars"/>
</copy>
<echo>Copying Javadoc</echo>
<zip destfile="${dist.dir}/jMonkeyEngine3-javadoc.zip">
<zipfileset dir="${dist.dir}/javadoc/"/>
</zip>
<copy file="${dist.dir}/jMonkeyEngine3-javadoc.zip" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
<zip destfile="${dist.dir}/jMonkeyEngine3-sources.zip">
<zipfileset dir="${src.core.dir}"/>
<zipfileset dir="${src.core-data.dir}"/>
<zipfileset dir="${src.core-effects.dir}"/>
<zipfileset dir="${src.core-plugins.dir}"/>
<zipfileset dir="${src.desktop.dir}"/>
<zipfileset dir="${src.jbullet.dir}"/>
<zipfileset dir="${src.niftygui.dir}"/>
<zipfileset dir="${src.jogg.dir}"/>
<zipfileset dir="${src.lwjgl.dir}"/>
<zipfileset dir="${src.ogre.dir}"/>
<zipfileset dir="${src.test.dir}"/>
<zipfileset dir="${src.tools.dir}"/>
<zipfileset dir="${src.xml.dir}"/>
<zipfileset dir="${src.terrain.dir}"/>
<zipfileset dir="${src.networking.dir}"/>
</zip>
<copy file="${dist.dir}/jMonkeyEngine3-sources.zip" toDir="${jmp_dir}/jme3-project-baselibs/release/libs/" overwrite="true" failonerror="true" verbose="false"/>
<copy todir="${jmp_dir}/jme3-project-libraries/release/libs/" overwrite="true" failonerror="true" verbose="false" flatten="true">
<fileset refid="jme3-external-libraries"/>
<fileset refid="jme3-lwjgl-native-jars"/>
<fileset refid="jme3-bullet-native-jars"/>
<fileset refid="jme3-openal-soft-natives-jars"/>
<fileset dir="lib/niftygui/">
<include name="nifty-javadoc.jar"/>
<include name="nifty-default-controls-javadoc.jar"/>
</fileset>
</copy>
<echo>Copying Test Examples</echo>
<copy todir="${jmp_dir}/JME3TestsTemplate/src/" overwrite="true" failonerror="true" verbose="false">
<fileset dir="src/test/">
<exclude name=".svn"/>
</fileset>
</copy>
<copy todir="${jmp_dir}/JME3TestsTemplateAndroid/src/" overwrite="true" failonerror="true" verbose="false">
<fileset dir="src/test/">
<exclude name=".svn"/>
</fileset>
</copy>
</target>
<target name="-javadoc-build" depends="init" if="have.sources" description="Overrides default javadoc target to exclude test javadoc">
<mkdir dir="${dist.javadoc.dir}"/>
<javadoc additionalparam="${javadoc.additionalparam}" author="${javadoc.author}" charset="UTF-8" destdir="${dist.javadoc.dir}" docencoding="UTF-8" encoding="${javadoc.encoding.used}" failonerror="true" noindex="${javadoc.noindex}" nonavbar="${javadoc.nonavbar}" notree="${javadoc.notree}" private="${javadoc.private}" source="${javac.source}" splitindex="${javadoc.splitindex}" use="${javadoc.use}" useexternalfile="true" version="${javadoc.version}" windowtitle="${javadoc.windowtitle}">
<classpath>
<path path="${javac.classpath}"/>
</classpath>
<fileset dir="${src.core.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.core-data.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.core-effects.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.core-plugins.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.desktop.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.terrain.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<!--fileset dir="${src.jbullet.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset-->
<fileset dir="${src.bullet.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.bullet-native.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.bullet-common.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.networking.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.niftygui.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.jogg.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.ogre.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.blender.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.xml.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.tools.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<!--fileset dir="${src.test.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset-->
<fileset dir="${src.lwjgl.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${src.android.dir}" excludes="*.java,${excludes}" includes="${includes}">
<filename name="**/*.java"/>
</fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
<exclude name="*.java"/>
</fileset>
</javadoc>
<copy todir="${dist.javadoc.dir}">
<fileset dir="${src.core.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.core-data.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.core-effects.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.core-plugins.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.desktop.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.terrain.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.jbullet.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<!--fileset dir="${src.bullet.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset-->
<fileset dir="${src.bullet-native.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.bullet-common.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.networking.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.niftygui.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.jogg.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.ogre.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.blender.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.xml.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.tools.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<!--fileset dir="${src.test.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset-->
<fileset dir="${src.lwjgl.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${src.android.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/doc-files/**"/>
</fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="**/doc-files/**"/>
</fileset>
</copy>
</target>
<!--
****************************************************************
Only Relevant for building nightly on Hudson server from here on
****************************************************************
-->
<target depends="init" name="create-zip-distribution" description="puts jme3 jars, libs, source and javadoc in a dated zip file">
<tstamp>
<format property="date" pattern="yyyy-MM-dd" locale="en,US"/>
</tstamp>
<property name="jme3zip" value="jME3_${date}.zip"/>
<zip destfile="${jme3zip}">
<fileset dir=".">
<include name="TestChooser.exe"/>
<include name="README.TXT"/>
</fileset>
<fileset dir="${dist.dir}/">
<include name="jMonkeyEngine3.jar"/>
</fileset>
<zipfileset dir="${dist.dir}/lib" prefix="lib"/>
<zipfileset dir="${dist.dir}/opt" prefix="opt"/>
<zipfileset dir="${dist.dir}/javadoc" prefix="javadoc"/>
<zipfileset dir="${src.core.dir}" prefix="source"/>
<zipfileset dir="${src.core-data.dir}" prefix="source"/>
<zipfileset dir="${src.core-effects.dir}" prefix="source"/>
<zipfileset dir="${src.core-plugins.dir}" prefix="source"/>
<zipfileset dir="${src.desktop.dir}" prefix="source"/>
<zipfileset dir="${src.jbullet.dir}" prefix="source"/>
<zipfileset dir="${src.niftygui.dir}" prefix="source"/>
<zipfileset dir="${src.jogg.dir}" prefix="source"/>
<zipfileset dir="${src.lwjgl.dir}" prefix="source"/>
<zipfileset dir="${src.ogre.dir}" prefix="source"/>
<zipfileset dir="${src.test.dir}" prefix="source"/>
<zipfileset dir="${src.tools.dir}" prefix="source"/>
<zipfileset dir="${src.xml.dir}" prefix="source"/>
<zipfileset dir="${src.terrain.dir}" prefix="source"/>
<zipfileset dir="${src.networking.dir}" prefix="source"/>
</zip>
</target>
<target depends="init" name="update-sdk-nobuild">
<antcall target="-do-update-sdk" inheritall="true">
<param name="jmp_dir" value="../sdk/"/>
</antcall>
</target>
</project>

@ -0,0 +1,176 @@
***********************************
* Build info for bulletjme *
* (c) 2011 Normen Hansen *
***********************************
This document outlines the process of building bullet-jme on different platforms.
Since bulletjme is a native java library and bullet gets included statically,
building requires downloading and building the bullet sources.
Note that you do need to have CMake and a GCC compiler installed as well as
the Android NDK in case you want to build for android too.
-----------------------------------
Requirements
-----------------------------------
ALL PLATFORMS
- Java SDK 1.5+: http://java.sun.com
- Apache ANT: http://ant.apache.org (included in most Java IDEs)
- Android NDK (optional): http://developer.android.com/sdk/ndk/index.html
WINDOWS
- Install mingw GNU C++ Compiler: http://www.mingw.org/
- Install CMake: http://www.cmake.org/
Mac OSX
- Install XCode: http://developer.apple.com/ (or via the App Store)
- Install the "Command Line Tools" from inside XCode
- Install http://www.macports.org
- Install cmake via macports, in the Terminal type:
> sudo port install cmake
LINUX
- Install cmake (and gcc if not available) via your package manager of choice, e.g.
> sudo apt-get install cmake
-----------------------------------
Building
-----------------------------------
The build script in this directory does everything needed to download and compile
bullet and the jme-bullet library, you only need to call the appropriate ant target,
via your IDE or command line:
> ant build-bullet-natives
..and all of the steps below are executed automatically, including the download.
You can alter options in the "nbproject/bullet.properties" file, such as the used
bullet version, native compilation options (see below), path to Android NDK etc.
-----------------------------------
Running
-----------------------------------
The resulting jMonkeyEngine3.jar containing the tests will automatically use the
jME3-jbullet.jar or jME3-bullet.jar, depending on which is available in the libs directory.
A convenience target exists to run the engine tests using the native bullet library:
> ant run-bullet-native
-----------------------------------
Altering the native build process
-----------------------------------
bullet-jme uses cpptasks to compile native code as well as the Android NDK.
If you get compilation errors, try setting "native.java.include" in the build.properties file to your
JDK include directory, e.g. /opt/java/include or "c:\Program Files\Java\jdk1.6.0_20\include".
To change the used compiler, edit the "native.platform.compiler" entry in the
"build.properties" file. The following c++ compilers work with cpptasks:
gcc GCC C++ compiler
g++ GCC C++ compiler
c++ GCC C++ compiler
msvc Microsoft Visual C++
bcc Borland C++ Compiler
icl Intel C++ compiler for Windows (IA-32)
ecl Intel C++ compiler for Windows (IA-64)
icc Intel C++ compiler for Linux (IA-32)
ecc Intel C++ compiler for Linux (IA-64)
CC Sun ONE C++ compiler
aCC HP aC++ C++ Compiler
wcl OpenWatcom C/C++ compiler
In the "nbproject" folder you can find "build-native-platform.xml" files containing the commands
to compile bullet-jme on different platforms. If you want to alter the process,
you can copy and modify one of the files and import it in the "build.xml" file instead
of the old one.
-----------------------------------
Netbeans Project
-----------------------------------
The engine NetBeans project also includes the native sources and a build configuration
entry to build the binary and run the tests with it.
To have correct syntax highlighting in .cpp/.h files:
- in Netbeans Settings -> C/C++ -> Code Assistance -> C++
- add bullet-2.79/src as include directories for C++
- add JAVA_HOME/include as include directories for C
***********************************
* Building bullet (optional) *
***********************************
-----------------------------------
General info
-----------------------------------
Note that the compilation of bullet should not produce dll / so / dylib files
but static *.a libraries which can later be compiled into the binary of bullet-jme.
-----------------------------------
Downloading and extracting bullet
-----------------------------------
Requirements:
- Bullet source: http://bullet.googlecode.com/
Extract bullet source and build bullet (see below)
-----------------------------------
Building on Mac OSX
-----------------------------------
Requirements:
- Apple Developer tools: http://developer.apple.com/
- CMake: http://www.cmake.org/ (or via http://www.macports.org)
Commands:
> cd bullet-trunk
> cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON \
-DCMAKE_OSX_ARCHITECTURES='ppc;i386;x86_64' \
-DBUILD_EXTRAS=off -DBUILD_DEMOS=off -DCMAKE_BUILD_TYPE=Release
> make
-----------------------------------
Building on WINDOWS (MinGW/GCC, Recommended)
-----------------------------------
Requirements:
- GNU C++ Compiler: http://www.mingw.org/
http://mingw-w64.sourceforge.net/
- CMake: http://www.cmake.org/
Commands:
> cd bullet-trunk
> cmake . -DBUILD_SHARED_LIBS=OFF -DBUILD_DEMOS:BOOL=OFF -DBUILD_EXTRAS:BOOL=OFF -DCMAKE_BUILD_TYPE=Release . -G "MinGW Makefiles"
> mingw32-make
-----------------------------------
Building on WINDOWS (VisualStudio, untested)
-----------------------------------
Requirements:
- Microsoft Visual Studio http://msdn.microsoft.com/
Bullet comes with autogenerated Project Files for Microsoft Visual Studio 6, 7, 7.1 and 8.
The main Workspace/Solution is located in Bullet/msvc/8/wksbullet.sln (replace 8 with your version).
Build the project to create static libraries.
-----------------------------------
Building bullet on LINUX
-----------------------------------
Requirements:
- Gnu C++ Compiler: http://gcc.gnu.org/
- CMake: http://www.cmake.org/ (or via your package manager of choice)
Commands:
> cd bullet-trunk
> cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_CXX_FLAGS="-fPIC"\
-DBUILD_EXTRAS=off -DBUILD_DEMOS=off -DCMAKE_BUILD_TYPE=Release
> make
-----------------------------------
More info on building bullet
-----------------------------------
http://www.bulletphysics.org/mediawiki-1.5.8/index.php?title=Installation

Binary file not shown.

Binary file not shown.

@ -0,0 +1,11 @@
classmetrics=com.jeantessier.dependencyfinder.ant.ClassMetrics
dependencycycles=com.jeantessier.dependencyfinder.ant.DependencyCycles
dependencyclosure=com.jeantessier.dependencyfinder.ant.DependencyClosure
dependencyextractor=com.jeantessier.dependencyfinder.ant.DependencyExtractor
dependencymetrics=com.jeantessier.dependencyfinder.ant.DependencyMetrics
dependencyreporter=com.jeantessier.dependencyfinder.ant.DependencyReporter
jarjardiff=com.jeantessier.dependencyfinder.ant.JarJarDiff
listdeprecatedelements=com.jeantessier.dependencyfinder.ant.ListDeprecatedElements
listdiff=com.jeantessier.dependencyfinder.ant.ListDiff
listsymbols=com.jeantessier.dependencyfinder.ant.ListSymbols
oometrics=com.jeantessier.dependencyfinder.ant.OOMetrics

@ -0,0 +1,20 @@
# Default logging settings for Dependency Finder applications
log4j.rootLogger=ERROR, CONSOLE
# log4j.logger.com.jeantessier.dependency=DEBUG, CHAINSAW
# log4j.logger.com.jeantessier.dependency.PackageNode=DEBUG, CHAINSAW
# log4j.logger.com.jeantessier.metrics.MetricsGatherer=DEBUG, CHAINSAW
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%d{yyyy/MM/dd HH:mm:ss.SSS}] %c{2} %m%n
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=C:\\language\\Java\\myprojects\\DependencyFinder\\logs\\default.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=[%d{yyyy/MM/dd HH:mm:ss.SSS}] %c{2} %m%n
log4j.appender.CHAINSAW=org.apache.log4j.net.SocketAppender
log4j.appender.CHAINSAW.RemoteHost=localhost
log4j.appender.CHAINSAW.Port=4445
log4j.appender.CHAINSAW.LocationInfo=true

@ -0,0 +1,304 @@
<?xml version="1.0"?>
<!--
Copyright (c) 2001-2009, Jean Tessier
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of Jean Tessier nor the names of his contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:strip-space elements="*"/>
<xsl:template match="differences">
<html>
<head>
<title><xsl:if test="name/text()"><xsl:value-of select="name"/> - </xsl:if>API Change History</title>
</head>
<body bgcolor="#ffffff">
<h1><xsl:if test="name/text()"><xsl:value-of select="name"/> - </xsl:if>API Change History</h1>
<ul>
<li><a href="#{new}"><xsl:value-of select="old"/> to <xsl:value-of select="new"/></a></li>
</ul>
<hr />
<a name="{new}" />
<h2><xsl:value-of select="old"/> to <xsl:value-of select="new"/></h2>
<xsl:apply-templates/>
<hr />
</body>
</html>
</xsl:template>
<xsl:template match="differences/name | old | new"/>
<xsl:template match="removed-packages">
<h3>Removed Packages:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="removed-interfaces">
<h3>Removed Interfaces:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="removed-classes">
<h3>Removed Classes:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="deprecated-interfaces">
<h3>Newly Deprecated Interfaces:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="deprecated-classes">
<h3>Newly Deprecated Classes:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="modified-interfaces">
<h3>Modified Interfaces:</h3>
<blockquote>
<xsl:apply-templates/>
</blockquote>
</xsl:template>
<xsl:template match="modified-classes">
<h3>Modified Classes:</h3>
<blockquote>
<xsl:apply-templates/>
</blockquote>
</xsl:template>
<xsl:template match="undeprecated-interfaces">
<h3>Formerly Deprecated Interfaces:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="undeprecated-classes">
<h3>Formerly Deprecated Classes:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="new-packages">
<h3>New Packages:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="new-interfaces">
<h3>New Interfaces:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="new-classes">
<h3>New Classes:</h3>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="class">
<h4><code><xsl:value-of select="name"/></code></h4>
<blockquote>
<xsl:apply-templates/>
</blockquote>
</xsl:template>
<xsl:template match="removed-fields">
<h5>Removed Fields:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="removed-constructors">
<h5>Removed Constructors:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="removed-methods">
<h5>Removed Methods:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="deprecated-fields">
<h5>Newly Deprecated Fields:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="deprecated-constructors">
<h5>Newly Deprecated Constructors:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="deprecated-methods">
<h5>Newly Deprecated Methods:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="modified-fields">
<h5>Field Declaration Changes:</h5>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="modified-constructors">
<h5>Constructor Changes:</h5>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="modified-methods">
<h5>Method Changes:</h5>
<xsl:apply-templates/>
</xsl:template>
<xsl:template match="feature">
<blockquote>
<p><nobr><code>
<xsl:apply-templates/>
</code></nobr></p>
</blockquote>
</xsl:template>
<xsl:template match="modified-code">
<b>code:</b> <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="modified-declaration">
<b>old:</b> <xsl:value-of select="old-declaration"/>
<xsl:if test="old-declaration[@deprecated='yes']"> <b>[deprecated]</b></xsl:if>
<br/>
<b>new:</b> <xsl:value-of select="new-declaration"/>
<xsl:if test="new-declaration[@deprecated='yes']"> <b>[deprecated]</b></xsl:if>
<xsl:if test="../modified-code"><br/></xsl:if>
</xsl:template>
<xsl:template match="undeprecated-fields">
<h5>Formerly Deprecated Fields:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="undeprecated-constructors">
<h5>Formerly Deprecated Constructors:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="undeprecated-methods">
<h5>Formerly Deprecated Methods:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="new-fields">
<h5>New Fields:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="new-constructors">
<h5>New Constructors:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="new-methods">
<h5>New Methods:</h5>
<ul>
<xsl:apply-templates/>
</ul>
</xsl:template>
<xsl:template match="class/name | feature/name"/>
<xsl:template match="class/modified-declaration">
<h5>Declaration Changes:</h5>
<blockquote>
<p><nobr><code>
<b>old:</b> <xsl:value-of select="old-declaration"/>
<xsl:if test="old-declaration[@deprecated='yes']"> <b>[deprecated]</b></xsl:if>
<br/>
<b>new:</b> <xsl:value-of select="new-declaration"/>
<xsl:if test="new-declaration[@deprecated='yes']"> <b>[deprecated]</b></xsl:if>
</code></nobr></p>
</blockquote>
</xsl:template>
<xsl:template match="new-packages/name[@deprecated='yes'] | new-interfaces/name[@deprecated='yes'] | new-classes/name[@deprecated='yes'] | new-fields/declaration[@deprecated='yes'] | new-constructors/declaration[@deprecated='yes'] | new-methods/declaration[@deprecated='yes']">
<li><nobr><code><xsl:value-of select="."/> <b>[deprecated]</b></code></nobr></li>
</xsl:template>
<xsl:template match="name | declaration">
<li><nobr><code><xsl:value-of select="."/></code></nobr></li>
</xsl:template>
</xsl:stylesheet>

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

@ -0,0 +1,53 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000-2002 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation", "Jakarta-Oro"
* must not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* or "Jakarta-Oro", nor may "Apache" or "Jakarta-Oro" appear in their
* name, without prior written permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 1999-2005 The Apache Software Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

@ -0,0 +1,31 @@
/*
* Copyright (c) 2001-2009, Jean Tessier
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of Jean Tessier nor the names of his contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

@ -0,0 +1,28 @@
Content
-------
This is the Dependency Finder toolkit. It contains a number of
tools for exploring relationships in (compiled) Java code.
Licensing
---------
This software is licensed under the terms of BSD-like license.
A copy of the licensing terms is in the file license.txt. You
can get the original BSD License template at opensource.org.
This product includes software developed by the Apache Software
Foundation (http://www.apache.org/). The terms of the Apache
Software License are reproduced in the lib/ directory next to
the relevant binary .jar files.
Installation and Tools
----------------------
Installation instructions are included in docs/Manual.html.
A list of the tools and their usage is in docs/Tools.html.
These documents are also available online at:
http://depfind.sourceforge.net/

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -0,0 +1,32 @@
/*****************************************************************************
* Copyright (c) 2003 Sun Microsystems, Inc. All Rights Reserved.
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* - Redistribution of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* - Redistribution in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materails provided with the distribution.
*
* Neither the name Sun Microsystems, Inc. or the names of the contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* This software is provided "AS IS," without a warranty of any kind.
* ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING
* ANY IMPLIED WARRANT OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
* NON-INFRINGEMEN, ARE HEREBY EXCLUDED. SUN MICROSYSTEMS, INC. ("SUN") AND
* ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS
* A RESULT OF USING, MODIFYING OR DESTRIBUTING THIS SOFTWARE OR ITS
* DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE FOR ANY LOST
* REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL,
* INCIDENTAL OR PUNITIVE DAMAGES. HOWEVER CAUSED AND REGARDLESS OF THE THEORY
* OF LIABILITY, ARISING OUT OF THE USE OF OUR INABILITY TO USE THIS SOFTWARE,
* EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*
* You acknowledge that this software is not designed or intended for us in
* the design, construction, operation or maintenance of any nuclear facility
*
*****************************************************************************/

@ -0,0 +1,152 @@
JOGL is released under the BSD license. The full license terms follow:
Copyright (c) 2003-2009 Sun Microsystems, Inc. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistribution of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
Neither the name of Sun Microsystems, Inc. or the names of
contributors may be used to endorse or promote products derived from
this software without specific prior written permission.
This software is provided "AS IS," without a warranty of any kind. ALL
EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES,
INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN
MICROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR
ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR
ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR
DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY,
ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF
SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
You acknowledge that this software is not designed or intended for use
in the design, construction, operation or maintenance of any nuclear
facility.
The JOGL source tree contains code ported from the OpenGL sample
implementation by Silicon Graphics, Inc. This code is licensed under
the SGI Free Software License B (Sun is redistributing the modified code
under a slightly modified, alternative license, which is described two
paragraphs below after "NOTE:"):
License Applicability. Except to the extent portions of this file are
made subject to an alternative license as permitted in the SGI Free
Software License B, Version 1.1 (the "License"), the contents of this
file are subject only to the provisions of the License. You may not use
this file except in compliance with the License. You may obtain a copy
of the License at Silicon Graphics, Inc., attn: Legal Services, 1600
Amphitheatre Parkway, Mountain View, CA 94043-1351, or at:
http://oss.sgi.com/projects/FreeB
Note that, as provided in the License, the Software is distributed on an
"AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS
DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND
CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A
PARTICULAR PURPOSE, AND NON-INFRINGEMENT.
NOTE: The Original Code (as defined below) has been licensed to Sun
Microsystems, Inc. ("Sun") under the SGI Free Software License B
(Version 1.1), shown above ("SGI License"). Pursuant to Section
3.2(3) of the SGI License, Sun is distributing the Covered Code to
you under an alternative license ("Alternative License"). This
Alternative License includes all of the provisions of the SGI License
except that Section 2.2 and 11 are omitted. Any differences between
the Alternative License and the SGI License are offered solely by Sun
and not by SGI.
Original Code. The Original Code is: OpenGL Sample Implementation,
Version 1.2.1, released January 26, 2000, developed by Silicon Graphics,
Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc.
Copyright in any portions created by third parties is as indicated
elsewhere herein. All Rights Reserved.
Additional Notice Provisions: The application programming interfaces
established by SGI in conjunction with the Original Code are The
OpenGL(R) Graphics System: A Specification (Version 1.2.1), released
April 1, 1999; The OpenGL(R) Graphics System Utility Library (Version
1.3), released November 4, 1998; and OpenGL(R) Graphics with the X
Window System(R) (Version 1.3), released October 19, 1998. This software
was created using the OpenGL(R) version 1.2.1 Sample Implementation
published by SGI, but has not been independently verified as being
compliant with the OpenGL(R) version 1.2.1 Specification.
The JOGL source tree contains code from the LWJGL project which is
similarly covered by the BSD license:
Copyright (c) 2002-2004 LWJGL Project
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
* Neither the name of 'LWJGL' nor the names of
its contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The JOGL source tree also contains a Java port of Brian Paul's Tile
Rendering library, used with permission of the author under the BSD
license instead of the original LGPL:
Copyright (c) 1997-2005 Brian Paul. All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistribution of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistribution in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
Neither the name of Brian Paul or the names of contributors may be
used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided "AS IS," without a warranty of any
kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
EXCLUDED. THE COPYRIGHT HOLDERS AND CONTRIBUTORS SHALL NOT BE
LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING,
MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO
EVENT WILL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY
LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT, SPECIAL,
CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER CAUSED AND
REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF THE USE OF OR
INABILITY TO USE THIS SOFTWARE, EVEN IF THE COPYRIGHT HOLDERS OR
CONTRIBUTORS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

@ -0,0 +1,15 @@
LZMA# SDK is licensed under two licenses:
1) GNU Lesser General Public License (GNU LGPL)
2) Common Public License (CPL)
It means that you can select one of these two licenses and
follow rules of that license.
SPECIAL EXCEPTION
Igor Pavlov, as the author of this code, expressly permits you
to statically or dynamically link your code (or bind by name)
to the files from LZMA# SDK without subjecting your linked
code to the terms of the CPL or GNU LGPL.
Any modifications or additions to files from LZMA# SDK, however,
are subject to the GNU LGPL or CPL terms.

@ -0,0 +1,437 @@
GNU LIBRARY GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
[This is the first released version of the library GPL. It is
numbered 2 because it goes with version 2 of the ordinary GPL.]
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
Licenses are intended to guarantee your freedom to share and change
free software--to make sure the software is free for all its users.
This license, the Library General Public License, applies to some
specially designated Free Software Foundation software, and to any
other libraries whose authors decide to use it. You can use it for
your libraries, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if
you distribute copies of the library, or if you modify it.
For example, if you distribute copies of the library, whether gratis
or for a fee, you must give the recipients all the rights that we gave
you. You must make sure that they, too, receive or can get the source
code. If you link a program with the library, you must provide
complete object files to the recipients so that they can relink them
with the library, after making changes to the library and recompiling
it. And you must show them these terms so they know their rights.
Our method of protecting your rights has two steps: (1) copyright
the library, and (2) offer you this license which gives you legal
permission to copy, distribute and/or modify the library.
Also, for each distributor's protection, we want to make certain
that everyone understands that there is no warranty for this free
library. If the library is modified by someone else and passed on, we
want its recipients to know that what they have is not the original
version, so that any problems introduced by others will not reflect on
the original authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that companies distributing free
software will individually obtain patent licenses, thus in effect
transforming the program into proprietary software. To prevent this,
we have made it clear that any patent must be licensed for everyone's
free use or not licensed at all.
Most GNU software, including some libraries, is covered by the ordinary
GNU General Public License, which was designed for utility programs. This
license, the GNU Library General Public License, applies to certain
designated libraries. This license is quite different from the ordinary
one; be sure to read it in full, and don't assume that anything in it is
the same as in the ordinary license.
The reason we have a separate public license for some libraries is that
they blur the distinction we usually make between modifying or adding to a
program and simply using it. Linking a program with a library, without
changing the library, is in some sense simply using the library, and is
analogous to running a utility program or application program. However, in
a textual and legal sense, the linked executable is a combined work, a
derivative of the original library, and the ordinary General Public License
treats it as such.
Because of this blurred distinction, using the ordinary General
Public License for libraries did not effectively promote software
sharing, because most developers did not use the libraries. We
concluded that weaker conditions might promote sharing better.
However, unrestricted linking of non-free programs would deprive the
users of those programs of all benefit from the free status of the
libraries themselves. This Library General Public License is intended to
permit developers of non-free programs to use free libraries, while
preserving your freedom as a user of such programs to change the free
libraries that are incorporated in them. (We have not seen how to achieve
this as regards changes in header files, but we have achieved it as regards
changes in the actual functions of the Library.) The hope is that this
will lead to faster development of free libraries.
The precise terms and conditions for copying, distribution and
modification follow. Pay close attention to the difference between a
"work based on the library" and a "work that uses the library". The
former contains code derived from the library, while the latter only
works together with the library.
Note that it is possible for a library to be covered by the ordinary
General Public License rather than by this special one.
GNU LIBRARY GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License Agreement applies to any software library which
contains a notice placed by the copyright holder or other authorized
party saying it may be distributed under the terms of this Library
General Public License (also called "this License"). Each licensee is
addressed as "you".
A "library" means a collection of software functions and/or data
prepared so as to be conveniently linked with application programs
(which use some of those functions and data) to form executables.
The "Library", below, refers to any such software library or work
which has been distributed under these terms. A "work based on the
Library" means either the Library or any derivative work under
copyright law: that is to say, a work containing the Library or a
portion of it, either verbatim or with modifications and/or translated
straightforwardly into another language. (Hereinafter, translation is
included without limitation in the term "modification".)
"Source code" for a work means the preferred form of the work for
making modifications to it. For a library, complete source code means
all the source code for all modules it contains, plus any associated
interface definition files, plus the scripts used to control compilation
and installation of the library.
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running a program using the Library is not restricted, and output from
such a program is covered only if its contents constitute a work based
on the Library (independent of the use of the Library in a tool for
writing it). Whether that is true depends on what the Library does
and what the program that uses the Library does.
1. You may copy and distribute verbatim copies of the Library's
complete source code as you receive it, in any medium, provided that
you conspicuously and appropriately publish on each copy an
appropriate copyright notice and disclaimer of warranty; keep intact
all the notices that refer to this License and to the absence of any
warranty; and distribute a copy of this License along with the
Library.
You may charge a fee for the physical act of transferring a copy,
and you may at your option offer warranty protection in exchange for a
fee.
2. You may modify your copy or copies of the Library or any portion
of it, thus forming a work based on the Library, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) The modified work must itself be a software library.
b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.
c) You must cause the whole of the work to be licensed at no
charge to all third parties under the terms of this License.
d) If a facility in the modified Library refers to a function or a
table of data to be supplied by an application program that uses
the facility, other than as an argument passed when the facility
is invoked, then you must make a good faith effort to ensure that,
in the event an application does not supply such function or
table, the facility still operates, and performs whatever part of
its purpose remains meaningful.
(For example, a function in a library to compute square roots has
a purpose that is entirely well-defined independent of the
application. Therefore, Subsection 2d requires that any
application-supplied function or table used by this function must
be optional: if the application does not supply it, the square
root function must still compute square roots.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Library,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Library, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote
it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Library.
In addition, mere aggregation of another work not based on the Library
with the Library (or with a work based on the Library) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library. To do
this, you must alter all the notices that refer to this License, so
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License. (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.) Do not make any other change in
these notices.
Once this change is made in a given copy, it is irreversible for
that copy, so the ordinary GNU General Public License applies to all
subsequent copies and derivative works made from that copy.
This option is useful when you wish to copy part of the code of
the Library into a program that is not a library.
4. You may copy and distribute the Library (or a portion or
derivative of it, under Section 2) in object code or executable form
under the terms of Sections 1 and 2 above provided that you accompany
it with the complete corresponding machine-readable source code, which
must be distributed under the terms of Sections 1 and 2 above on a
medium customarily used for software interchange.
If distribution of object code is made by offering access to copy
from a designated place, then offering equivalent access to copy the
source code from the same place satisfies the requirement to
distribute the source code, even though third parties are not
compelled to copy the source along with the object code.
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a
work, in isolation, is not a derivative work of the Library, and
therefore falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License.
Section 6 states terms for distribution of such executables.
When a "work that uses the Library" uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be
linked without the Library, or if the work is itself a library. The
threshold for this to be true is not precisely defined by law.
If such an object file uses only numerical parameters, data
structure layouts and accessors, and small macros and small inline
functions (ten lines or less in length), then the use of the object
file is unrestricted, regardless of whether it is legally a derivative
work. (Executables containing this object code plus portions of the
Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
whether or not they are linked directly with the Library itself.
6. As an exception to the Sections above, you may also compile or
link a "work that uses the Library" with the Library to produce a
work containing portions of the Library, and distribute that work
under terms of your choice, provided that the terms permit
modification of the work for the customer's own use and reverse
engineering for debugging such modifications.
You must give prominent notice with each copy of the work that the
Library is used in it and that the Library and its use are covered by
this License. You must supply a copy of this License. If the work
during execution displays copyright notices, you must include the
copyright notice for the Library among them, as well as a reference
directing the user to the copy of this License. Also, you must do one
of these things:
a) Accompany the work with the complete corresponding
machine-readable source code for the Library including whatever
changes were used in the work (which must be distributed under
Sections 1 and 2 above); and, if the work is an executable linked
with the Library, with the complete machine-readable "work that
uses the Library", as object code and/or source code, so that the
user can modify the Library and then relink to produce a modified
executable containing the modified Library. (It is understood
that the user who changes the contents of definitions files in the
Library will not necessarily be able to recompile the application
to use the modified definitions.)
b) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
c) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
d) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the
Library" must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.
It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.
7. You may place library facilities that are a work based on the
Library side-by-side in a single library together with other library
facilities not covered by this License, and distribute such a combined
library, provided that the separate distribution of the work based on
the Library and of the other library facilities is otherwise
permitted, and provided that you do these two things:
a) Accompany the combined library with a copy of the same work
based on the Library, uncombined with any other library
facilities. This must be distributed under the terms of the
Sections above.
b) Give prominent notice with the combined library of the fact
that part of it is a work based on the Library, and explaining
where to find the accompanying uncombined form of the same work.
8. You may not copy, modify, sublicense, link with, or distribute
the Library except as expressly provided under this License. Any
attempt otherwise to copy, modify, sublicense, link with, or
distribute the Library is void, and will automatically terminate your
rights under this License. However, parties who have received copies,
or rights, from you under this License will not have their licenses
terminated so long as such parties remain in full compliance.
9. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Library or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Library (or any work based on the
Library), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Library or works based on it.
10. Each time you redistribute the Library (or any work based on the
Library), the recipient automatically receives a license from the
original licensor to copy, distribute, link with or modify the Library
subject to these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
11. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Library at all. For example, if a patent
license would not permit royalty-free redistribution of the Library by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Library.
If any portion of this section is held invalid or unenforceable under any
particular circumstance, the balance of the section is intended to apply,
and the section as a whole is intended to apply in other circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
12. If the distribution and/or use of the Library is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Library under this License may add
an explicit geographical distribution limitation excluding those countries,
so that distribution is permitted only in or among countries not thus
excluded. In such case, this License incorporates the limitation as if
written in the body of this License.
13. The Free Software Foundation may publish revised and/or new
versions of the Library General Public License from time to time.
Such new versions will be similar in spirit to the present version,
but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library
specifies a version number of this License which applies to it and
"any later version", you have the option of following the terms and
conditions either of that version or of any later version published by
the Free Software Foundation. If the Library does not specify a
license version number, you may choose any version ever published by
the Free Software Foundation.
14. If you wish to incorporate parts of the Library into other free
programs whose distribution conditions are incompatible with these,
write to the author to ask for permission. For software which is
copyrighted by the Free Software Foundation, write to the Free
Software Foundation; we sometimes make exceptions for this. Our
decision will be guided by the two goals of preserving the free status
of all derivatives of our free software and of promoting the sharing
and reuse of software generally.
NO WARRANTY
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
DAMAGES.
END OF TERMS AND CONDITIONS

@ -0,0 +1,38 @@
The following people have helped to make this project what it is today:
- Caspian Rychlik-Prince <cprince@shavenpuppy.com>
- Brian Matzon <brian@matzon.dk>
- Elias Naur <elias.naur@gmail.com>
- Ioannis Tsakpinis <spasi@users.sourceforge.net>
- Niels J<EFBFBD>rgensen <nj@niemo.com>
- Tristan Campbell <tristan@happypedestrian.com>
- Gregory Pierce <gregorypierce@yahoo.com>
- Luke Holden <lholden@users.sf.net>
- Mark Bernard <captainjester@users.sourceforge.net>
- Erik Duijs <eduijs@users.sourceforge.net>
- Jos Hirth <jhirth@kaioa.com>
- Kevin Glass <kevin@cokeandcode.com>
- Atsuya Takagi
- kappaOne <one.kappa@gmail.com>
- Simon Felix
- Ryan McNally
- Ciardhubh <ciardhubh[at]ciardhubh.de>
- Jens von Pilgrim
- Ruben Garat
- Pelle Johnsen <pelle.johnsen@gmail.com>
- Jae Kwon
additional credits goes to:
- Joseph I. Valenzuela [OpenAL stuff]
- Lev Povalahev [OpenGL Extensions]
- Endolf [Nightly builds and JInput]
The LWJGL project includes files from or depends on the following projects:
- OpenGL, SGI - http://opengl.org/
- OpenAL, Creative Labs - http://openal.org/
- jinput, Sun - https://jinput.dev.java.net/
- lzma, p7zip - http://p7zip.sourceforge.net/
- JOGL, Sun - http://kenai.com/projects/jogl/pages/Home
Please see the /doc/3rdparty/ directory for licenses.
All trademarks and registered trademarks are the property of their respective owners.

@ -0,0 +1,31 @@
/*
* Copyright (c) 2002-2008 Lightweight Java Game Library Project
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
*
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* * Neither the name of 'Light Weight Java Game Library' nor the names of
* its contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

@ -0,0 +1,50 @@
This is the official readme file for lwjgl.
Unless otherwise stated, all files distributed or in SVN are covered by
the license as stated in the LICENSE file. If you have not received this
file, please download it from the cvs server.
To run some of the included tests:
Extract the archive, and cd into directory
(please substitute ; and \ according to platform)
java -cp .;res;jar\lwjgl.jar;jar\lwjgl_test.jar;jar\lwjgl_util.jar;jar\jinput.jar; -Djava.library.path=native\<windows|linux|macosx|solaris> TEST
(this specifies that the jvm should locate the lwjgl native libs in 'native' directory)
where TEST is some of the following:
org.lwjgl.test.WindowCreationTest
org.lwjgl.test.SysTest
org.lwjgl.test.DisplayTest
org.lwjgl.test.input.MouseCreationTest
org.lwjgl.test.input.MouseTest
org.lwjgl.test.input.HWCursorTest
org.lwjgl.test.input.KeyboardTest
org.lwjgl.test.input.TestControllers
org.lwjgl.test.openal.ALCTest
org.lwjgl.test.openal.OpenALCreationTest
org.lwjgl.test.openal.MovingSoundTest
org.lwjgl.test.openal.PlayTest
org.lwjgl.test.openal.PlayTestMemory
org.lwjgl.test.openal.SourceLimitTest
org.lwjgl.test.openal.PositionTest
org.lwjgl.test.openal.StressTest
org.lwjgl.test.openal.SourceLimitTest
org.lwjgl.test.opengl.FullScreenWindowedTest
org.lwjgl.test.opengl.PbufferTest
org.lwjgl.test.opengl.VBOIndexTest
org.lwjgl.test.opengl.VBOTest
org.lwjgl.test.opengl.pbuffers.PbufferTest
org.lwjgl.test.opengl.shaders.ShadersTest
You may also run the Space invaders demo by executing:
java -cp .;res;jar\lwjgl.jar;jar\lwjgl_test.jar;jar\lwjgl_util.jar; -Djava.library.path=native\<windows|linux|macosx|solaris> org.lwjgl.examples.spaceinvaders.Game
Project Webpage: www.lwjgl.org
Project Forum: forum.lwjgl.org
Project SVN: https://java-game-lib.svn.sourceforge.net/svnroot/java-game-lib

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save