Skip to content

Commit

Permalink
Merge branch 'master' into capdevon-AnimComposer
Browse files Browse the repository at this point in the history
  • Loading branch information
stephengold authored Oct 27, 2024
2 parents ca2afc6 + b711c77 commit 4299aca
Show file tree
Hide file tree
Showing 165 changed files with 3,893 additions and 2,424 deletions.
18 changes: 10 additions & 8 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,28 +82,30 @@ jobs:
name: android-natives
path: build/native

# Build the engine, we only deploy from ubuntu-latest jdk17
# Build the engine, we only deploy from ubuntu-latest jdk21
BuildJMonkey:
needs: [BuildAndroidNatives]
name: Build on ${{ matrix.osName }} jdk${{ matrix.jdk }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest,windows-2019,macOS-latest]
jdk: [11, 17]
os: [ubuntu-latest,windows-latest,macOS-latest]
jdk: [11, 17, 21]
include:
- os: ubuntu-latest
osName: linux
deploy: true
- os: windows-2019
- os: windows-latest
osName: windows
deploy: false
- os: macOS-latest
osName: mac
deploy: false
- jdk: 11
deploy: false
- jdk: 17
deploy: false

steps:
- name: Clone the repo
Expand Down Expand Up @@ -304,12 +306,12 @@ jobs:
with:
fetch-depth: 1

# Setup jdk 17 used for building Maven-style artifacts
# Setup jdk 21 used for building Maven-style artifacts
- name: Setup the java environment
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

- name: Download natives for android
uses: actions/download-artifact@master
Expand Down Expand Up @@ -348,12 +350,12 @@ jobs:
with:
fetch-depth: 1

# Setup jdk 17 used for building Sonatype OSSRH artifacts
# Setup jdk 21 used for building Sonatype OSSRH artifacts
- name: Setup the java environment
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'

# Download all the stuff...
- name: Download maven artifacts
Expand Down
14 changes: 8 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ 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.
v3.6.1 is the latest stable version of the engine.
v3.7.0 is the latest stable version of the engine.

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)
- [jME powered games on IndieDB](https://www.indiedb.com/engines/jmonkeyengine/games)
- [Boardtastic 2](https://boardtastic-2.fileplanet.com/apk)
- [Attack of the Gelatinous Blob](https://attack-gelatinous-blob.softwareandgames.com/)
- [Mythruna](http://mythruna.com/)
- [Mythruna](https://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/)
- [3089 (on Steam)](https://store.steampowered.com/app/263360/3089__Futuristic_Action_RPG/)
- [3079 (on Steam)](https://store.steampowered.com/app/259620/3079__Block_Action_RPG/)
- [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/)
Expand All @@ -33,12 +33,14 @@ The engine is used by several commercial game studios and computer-science cours
- [Depthris (on Itch)](https://codewalker.itch.io/depthris)
- [Stranded (on Itch)](https://tgiant.itch.io/stranded)
- [The Afflicted Forests (Coming Soon to Steam)](https://www.indiedb.com/games/the-afflicted-forests)
- [Star Colony: Beyond Horizons (on Google Play)](https://play.google.com/store/apps/details?id=game.colony.ColonyBuilder)
- [High Impact (on Steam)](https://store.steampowered.com/app/3059050/High_Impact/)

## Getting Started

Go to https://github.com/jMonkeyEngine/sdk/releases to download the jMonkeyEngine SDK.
Read [the wiki](https://jmonkeyengine.github.io/wiki) for the installation guide and tutorials.
Join [the discussion forum](http://hub.jmonkeyengine.org/) to participate in our community,
Join [the discussion forum](https://hub.jmonkeyengine.org/) to participate in our community,
get your questions answered, and share your projects.

Note: The master branch on GitHub is a development version of the engine and is NOT MEANT TO BE USED IN PRODUCTION.
Expand Down
58 changes: 11 additions & 47 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ buildscript {
}
}
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
classpath 'me.tatarka:gradle-retrolambda:3.7.1'
classpath "gradle.plugin.com.github.spotbugs.snom:spotbugs-gradle-plugin:4.5.1"
classpath libs.android.build.gradle
classpath libs.gradle.retrolambda
classpath libs.spotbugs.gradle.plugin
}
}

Expand Down Expand Up @@ -49,6 +49,7 @@ subprojects {
// Currently we only warn about issues and try to fix them as we go, but those aren't mission critical.
spotbugs {
ignoreFailures = true
toolVersion = '4.8.6'
}

tasks.withType(com.github.spotbugs.snom.SpotBugsTask ) {
Expand All @@ -74,23 +75,23 @@ task libDist(dependsOn: subprojects.build, description: 'Builds and copies the e
subprojects.each {project ->
if(!project.hasProperty('mainClassName')){
project.tasks.withType(Jar).each {archiveTask ->
if(archiveTask.classifier == "sources"){
if(archiveTask.archiveClassifier == "sources"){
copy {
from archiveTask.archivePath
into sourceFolder
rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension}
rename {project.name + '-' + archiveTask.archiveClassifier +'.'+ archiveTask.archiveExtension}
}
} else if(archiveTask.classifier == "javadoc"){
} else if(archiveTask.archiveClassifier == "javadoc"){
copy {
from archiveTask.archivePath
into javadocFolder
rename {project.name + '-' + archiveTask.classifier +'.'+ archiveTask.extension}
rename {project.name + '-' + archiveTask.archiveClassifier +'.'+ archiveTask.archiveExtension}
}
} else{
copy {
from archiveTask.archivePath
into libFolder
rename {project.name + '.' + archiveTask.extension}
rename {project.name + '.' + archiveTask.archiveExtension}
}
}
}
Expand All @@ -114,7 +115,7 @@ task createZipDistribution(type:Zip,dependsOn:["dist","libDist"], description:"P
task copyLibs(type: Copy){
// description 'Copies the engine dependencies to build/libDist'
from {
subprojects*.configurations*.compile*.copyRecursive({ !(it instanceof ProjectDependency); })*.resolve()
subprojects*.configurations*.implementation*.copyRecursive({ !(it instanceof ProjectDependency); })*.resolve()
}

into "$buildDir/libDist/lib-ext" //buildDir.path + '/' + libsDirName + '/lib'
Expand Down Expand Up @@ -245,45 +246,8 @@ if (skipPrebuildLibraries != "true" && buildNativeProjects != "true") {
}
}


//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
// }
//}

retrolambda {
javaVersion JavaVersion.VERSION_1_7
incremental true
jvmArgs '-noverify'
}
}
27 changes: 12 additions & 15 deletions common.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,10 @@ eclipse.jdt.file.withProperties { props ->
group = 'org.jmonkeyengine'
version = jmeFullVersion

sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
java {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

tasks.withType(JavaCompile) { // compile-time options:
//options.compilerArgs << '-Xlint:deprecation' // to show deprecation warnings
Expand All @@ -27,11 +29,6 @@ tasks.withType(JavaCompile) { // compile-time options:
}
}

ext {
lwjgl3Version = '3.3.3' // used in both the jme3-lwjgl3 and jme3-vr build scripts
niftyVersion = '1.4.3' // used in both the jme3-niftygui and jme3-examples build scripts
}

repositories {
mavenCentral()
flatDir {
Expand All @@ -41,9 +38,9 @@ repositories {

dependencies {
// Adding dependencies here will add the dependencies to each subproject.
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.mockito:mockito-core:3.12.4'
testImplementation 'org.codehaus.groovy:groovy-test:3.0.21'
testImplementation libs.junit4
testImplementation libs.mokito.core
testImplementation libs.groovy.test
}

// Uncomment if you want to see the status of every test that is run and
Expand Down Expand Up @@ -85,12 +82,12 @@ test {
}

task sourcesJar(type: Jar, dependsOn: classes, description: 'Creates a jar from the source files.') {
classifier = 'sources'
archiveClassifier = 'sources'
from sourceSets*.allSource
}

task javadocJar(type: Jar, dependsOn: javadoc, description: 'Creates a jar from the javadoc files.') {
classifier = 'javadoc'
archiveClassifier = 'javadoc'
from javadoc.destinationDir
}

Expand Down Expand Up @@ -204,7 +201,7 @@ tasks.withType(Sign) {
}

checkstyle {
toolVersion '9.3'
toolVersion libs.versions.checkstyle.get()
configFile file("${gradle.rootProject.rootDir}/config/checkstyle/checkstyle.xml")
}

Expand All @@ -218,8 +215,8 @@ checkstyleTest {

tasks.withType(Checkstyle) {
reports {
xml.enabled false
html.enabled true
xml.required.set(false)
html.required.set(true)
}
include("**/com/jme3/renderer/**/*.java")
}
50 changes: 50 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
## catalog of libraries and plugins used to build the jmonkeyengine project

[versions]

checkstyle = "9.3"
lwjgl3 = "3.3.3"
nifty = "1.4.3"

[libraries]

android-build-gradle = "com.android.tools.build:gradle:4.2.0"
android-support-appcompat = "com.android.support:appcompat-v7:28.0.0"
androidx-annotation = "androidx.annotation:annotation:1.3.0"
androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.4.0"
gradle-git = "org.ajoberstar:gradle-git:1.2.0"
gradle-retrolambda = "me.tatarka:gradle-retrolambda:3.7.1"
groovy-test = "org.codehaus.groovy:groovy-test:3.0.22"
gson = "com.google.code.gson:gson:2.9.1"
j-ogg-vorbis = "com.github.stephengold:j-ogg-vorbis:1.0.6"
jbullet = "com.github.stephengold:jbullet:1.0.3"
jinput = "net.java.jinput:jinput:2.0.9"
jna = "net.java.dev.jna:jna:5.10.0"
jnaerator-runtime = "com.nativelibs4java:jnaerator-runtime:0.12"
junit4 = "junit:junit:4.13.2"
lwjgl2 = "org.jmonkeyengine:lwjgl:2.9.5"
lwjgl3-awt = "org.lwjglx:lwjgl3-awt:0.1.8"

lwjgl3-base = { module = "org.lwjgl:lwjgl", version.ref = "lwjgl3" }
lwjgl3-glfw = { module = "org.lwjgl:lwjgl-glfw", version.ref = "lwjgl3" }
lwjgl3-jawt = { module = "org.lwjgl:lwjgl-jawt", version.ref = "lwjgl3" }
lwjgl3-jemalloc = { module = "org.lwjgl:lwjgl-jemalloc", version.ref = "lwjgl3" }
lwjgl3-openal = { module = "org.lwjgl:lwjgl-openal", version.ref = "lwjgl3" }
lwjgl3-opencl = { module = "org.lwjgl:lwjgl-opencl", version.ref = "lwjgl3" }
lwjgl3-opengl = { module = "org.lwjgl:lwjgl-opengl", version.ref = "lwjgl3" }
lwjgl3-openvr = { module = "org.lwjgl:lwjgl-openvr", version.ref = "lwjgl3" }
lwjgl3-ovr = { module = "org.lwjgl:lwjgl-ovr", version.ref = "lwjgl3" }

mokito-core = "org.mockito:mockito-core:3.12.4"

nifty = { module = "com.github.nifty-gui:nifty", version.ref = "nifty" }
nifty-default-controls = { module = "com.github.nifty-gui:nifty-default-controls", version.ref = "nifty" }
nifty-examples = { module = "com.github.nifty-gui:nifty-examples", version.ref = "nifty" }
nifty-style-black = { module = "com.github.nifty-gui:nifty-style-black", version.ref = "nifty" }

spotbugs-gradle-plugin = "com.github.spotbugs.snom:spotbugs-gradle-plugin:6.0.18"
vecmath = "javax.vecmath:vecmath:1.5.2"

[bundles]

[plugins]
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.4-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit 4299aca

Please sign in to comment.