Skip to content

Commit e1ee54f

Browse files
authored
Merge branch 'master' into sgold-issue-2298
2 parents 9b88901 + 662b4ea commit e1ee54f

141 files changed

Lines changed: 9735 additions & 3817 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/main.yml

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,49 @@ on:
5656
types: [published]
5757

5858
jobs:
59-
59+
ScreenshotTests:
60+
name: Run Screenshot Tests
61+
runs-on: ubuntu-latest
62+
permissions:
63+
contents: read
64+
steps:
65+
- uses: actions/checkout@v4
66+
- name: Set up JDK 17
67+
uses: actions/setup-java@v4
68+
with:
69+
java-version: '17'
70+
distribution: 'temurin'
71+
- name: Install Mesa3D
72+
run: |
73+
sudo apt-get update
74+
sudo apt-get install -y mesa-utils libgl1-mesa-dri libgl1 libglx-mesa0 xvfb
75+
- name: Set environment variables for Mesa3D
76+
run: |
77+
echo "LIBGL_ALWAYS_SOFTWARE=1" >> $GITHUB_ENV
78+
echo "MESA_LOADER_DRIVER_OVERRIDE=llvmpipe" >> $GITHUB_ENV
79+
- name: Start xvfb
80+
run: |
81+
sudo Xvfb :99 -ac -screen 0 1024x768x16 &
82+
export DISPLAY=:99
83+
echo "DISPLAY=:99" >> $GITHUB_ENV
84+
- name: Verify Mesa3D Installation
85+
run: |
86+
glxinfo | grep "OpenGL"
87+
- name: Validate the Gradle wrapper
88+
uses: gradle/actions/wrapper-validation@v3
89+
- name: Test with Gradle Wrapper
90+
run: |
91+
./gradlew :jme3-screenshot-test:screenshotTest
92+
- name: Upload Test Reports
93+
uses: actions/upload-artifact@master
94+
if: always()
95+
with:
96+
name: screenshot-test-report
97+
retention-days: 30
98+
path: |
99+
**/build/reports/**
100+
**/build/changed-images/**
101+
**/build/test-results/**
60102
# Build the natives on android
61103
BuildAndroidNatives:
62104
name: Build natives for android
@@ -130,18 +172,16 @@ jobs:
130172
- name: Build Engine
131173
shell: bash
132174
run: |
133-
# Build
134-
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true build
175+
# Normal build plus ZIP distribution and merged javadoc
176+
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true \
177+
build createZipDistribution mergedJavadoc
135178
136179
if [ "${{ matrix.deploy }}" = "true" ];
137180
then
138181
# We are going to need "zip"
139182
sudo apt-get update
140183
sudo apt-get install -y zip
141184
142-
# Create the zip release and the javadoc
143-
./gradlew -PuseCommitHashAsVersionName=true -PskipPrebuildLibraries=true mergedJavadoc createZipDistribution
144-
145185
# We prepare the release for deploy
146186
mkdir -p ./dist/release/
147187
mv build/distributions/*.zip dist/release/

README.md

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ jMonkeyEngine
44
[![Build Status](https://github.com/jMonkeyEngine/jmonkeyengine/workflows/Build%20jMonkeyEngine/badge.svg)](https://github.com/jMonkeyEngine/jmonkeyengine/actions)
55

66
jMonkeyEngine is a 3-D game engine for adventurous Java developers. It’s open-source, cross-platform, and cutting-edge.
7-
v3.6.1 is the latest stable version of the engine.
7+
v3.7.0 is the latest stable version of the engine.
88

99
The engine is used by several commercial game studios and computer-science courses. Here's a taste:
1010

@@ -65,3 +65,47 @@ Read our [contribution guide](https://github.com/jMonkeyEngine/jmonkeyengine/blo
6565

6666
[New BSD (3-clause) License](https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/LICENSE.md)
6767

68+
### How to Build the Engine from Source
69+
70+
1. Install a Java Development Kit (JDK),
71+
if you don't already have one.
72+
2. Point the `JAVA_HOME` environment variable to your JDK installation:
73+
(In other words, set it to the path of a directory/folder
74+
containing a "bin" that contains a Java executable.
75+
That path might look something like
76+
"C:\Program Files\Eclipse Adoptium\jdk-17.0.3.7-hotspot"
77+
or "/usr/lib/jvm/java-17-openjdk-amd64/" or
78+
"/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home" .)
79+
+ using Bash or Zsh: `export JAVA_HOME="` *path to installation* `"`
80+
+ using Fish: `set -g JAVA_HOME "` *path to installation* `"`
81+
+ using Windows Command Prompt: `set JAVA_HOME="` *path to installation* `"`
82+
+ using PowerShell: `$env:JAVA_HOME = '` *path to installation* `'`
83+
3. Download and extract the engine source code from GitHub:
84+
+ using Git:
85+
+ `git clone https://github.com/jMonkeyEngine/jmonkeyengine.git`
86+
+ `cd jmonkeyengine`
87+
+ `git checkout -b latest v3.7.0-stable` (unless you plan to do development)
88+
+ using a web browser:
89+
+ browse to [the latest release](https://github.com/jMonkeyEngine/jmonkeyengine/releases/latest)
90+
+ follow the "Source code (zip)" link at the bottom of the page
91+
+ save the ZIP file
92+
+ extract the contents of the saved ZIP file
93+
+ `cd` to the extracted directory/folder
94+
4. Run the Gradle wrapper:
95+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew build`
96+
+ using Windows Command Prompt: `.\gradlew build`
97+
98+
After a successful build,
99+
fresh JARs will be found in "*/build/libs".
100+
101+
You can install the JARs to your local Maven repository:
102+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew install`
103+
+ using Windows Command Prompt: `.\gradlew install`
104+
105+
You can run the "jme3-examples" app:
106+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew run`
107+
+ using Windows Command Prompt: `.\gradlew run`
108+
109+
You can restore the project to a pristine state:
110+
+ using Bash or Fish or PowerShell or Zsh: `./gradlew clean`
111+
+ using Windows Command Prompt: `.\gradlew clean`

build.gradle

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -75,23 +75,25 @@ task libDist(dependsOn: subprojects.build, description: 'Builds and copies the e
7575
subprojects.each {project ->
7676
if(!project.hasProperty('mainClassName')){
7777
project.tasks.withType(Jar).each {archiveTask ->
78-
if(archiveTask.archiveClassifier == "sources"){
78+
String classifier = archiveTask.archiveClassifier.get()
79+
String ext = archiveTask.archiveExtension.get()
80+
if (classifier == "sources") {
7981
copy {
8082
from archiveTask.archivePath
8183
into sourceFolder
82-
rename {project.name + '-' + archiveTask.archiveClassifier +'.'+ archiveTask.archiveExtension}
84+
rename {project.name + '-' + classifier + '.' + ext}
8385
}
84-
} else if(archiveTask.archiveClassifier == "javadoc"){
86+
} else if (classifier == "javadoc") {
8587
copy {
8688
from archiveTask.archivePath
8789
into javadocFolder
88-
rename {project.name + '-' + archiveTask.archiveClassifier +'.'+ archiveTask.archiveExtension}
90+
rename {project.name + '-' + classifier + '.' + ext}
8991
}
9092
} else{
9193
copy {
9294
from archiveTask.archivePath
9395
into libFolder
94-
rename {project.name + '.' + archiveTask.archiveExtension}
96+
rename {project.name + '.' + ext}
9597
}
9698
}
9799
}
@@ -250,4 +252,4 @@ retrolambda {
250252
javaVersion JavaVersion.VERSION_1_7
251253
incremental true
252254
jvmArgs '-noverify'
253-
}
255+
}

gradle/libs.versions.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ androidx-annotation = "androidx.annotation:annotation:1.3.0"
1414
androidx-lifecycle-common = "androidx.lifecycle:lifecycle-common:2.4.0"
1515
gradle-git = "org.ajoberstar:gradle-git:1.2.0"
1616
gradle-retrolambda = "me.tatarka:gradle-retrolambda:3.7.1"
17-
groovy-test = "org.codehaus.groovy:groovy-test:3.0.21"
17+
groovy-test = "org.codehaus.groovy:groovy-test:3.0.22"
1818
gson = "com.google.code.gson:gson:2.9.1"
19-
j-ogg-vorbis = "com.github.stephengold:j-ogg-vorbis:1.0.4"
19+
j-ogg-vorbis = "com.github.stephengold:j-ogg-vorbis:1.0.6"
2020
jbullet = "com.github.stephengold:jbullet:1.0.3"
2121
jinput = "net.java.jinput:jinput:2.0.9"
2222
jna = "net.java.dev.jna:jna:5.10.0"

jme-angle/src/native/angle

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)