Skip to content

Commit 61e0555

Browse files
authored
Intellij migration & Chromebook support (arm64) (#1)
* Update JOGL libs * Get rid of DDS * Override default BMNGOneImage * Fix opensearch cluster network exposure * Add target to use OpenGL sw renderer * Update release scripts
1 parent b862def commit 61e0555

59 files changed

Lines changed: 323 additions & 475 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.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
*.log
22

3+
.idea/
34
target/
45

56
*.versionsBackup

.project

Lines changed: 0 additions & 17 deletions
This file was deleted.

.settings/org.eclipse.core.resources.prefs

Lines changed: 0 additions & 2 deletions
This file was deleted.

.settings/org.eclipse.m2e.core.prefs

Lines changed: 0 additions & 4 deletions
This file was deleted.

GNUmakefile

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ IMAGE_FQIN:=asaintsever/tinyworld
99

1010
.SILENT: ; # No need for @
1111
.ONESHELL: ; # Single shell for a target (required to properly use local variables)
12-
.PHONY: help init clean format test package run-ui run-indexor pre-release gen-portableapp gen-oci-image gen-appimage next-version release
12+
.PHONY: help init clean format test package run-ui run-ui-gl-sw run-indexor pre-release gen-portableapp gen-oci-image gen-appimage next-version release-github
1313
.DEFAULT_GOAL := help
1414

1515
help: ## Show Help
@@ -41,15 +41,17 @@ run-indexor: ## Run Indexor test program
4141
run-ui: ## Run TinyWorld UI
4242
mvn package -Dmaven.test.skip=true -P UI
4343

44+
run-ui-gl-sw: ## Run TinyWorld UI with OpenGL software rendering
45+
LIBGL_ALWAYS_SOFTWARE=1 mvn package -Dmaven.test.skip=true -P UI
46+
4447
pre-release:
4548
set -e
4649
mkdir -p release/artifacts
4750
chmod +x release/get-3rd-party.sh
4851
chmod +x release/release-helper.sh
4952
chmod +x release/appimage/appdir-gen.sh
50-
chmod +x release/appimage/x86_64/appimagetool-x86_64
53+
chmod +x release/appimage/bin/appimagetool-*
5154
chmod +x release/portable/portableapp-gen.sh
52-
echo "Get 3rd-party software ..."
5355
release/get-3rd-party.sh
5456

5557
gen-portableapp: package pre-release ## Generate TinyWorld Portable App
@@ -60,12 +62,12 @@ gen-portableapp: package pre-release ## Generate TinyWorld Portable App
6062

6163
# https://docs.appimage.org/packaging-guide/manual.html
6264
# https://github.com/AppImage/AppImageKit/wiki/Bundling-Java-apps#option-2-bundling-jre-manually
63-
gen-appimage: package pre-release ## Generate TinyWorld AppImage
65+
gen-appimage: package pre-release ## Generate TinyWorld AppImage (for current architecture)
6466
set -e
65-
echo "Build AppImage package ..."
67+
arch=$$(uname -m)
68+
echo "Build AppImage package (arch=$$arch)..."
6669
release/release-helper.sh release/appimage
67-
release/appimage/appdir-gen.sh
68-
release/appimage/x86_64/appimagetool-x86_64 release/appimage/AppDir release/artifacts/TinyWorld-${RELEASE_VERSION}-x86_64.AppImage
70+
release/appimage/appdir-gen.sh $$arch ${RELEASE_VERSION}
6971

7072
gen-oci-image: package pre-release ## Generate TinyWorld OCI Image
7173
set -e
@@ -79,7 +81,7 @@ next-version: ## Set next version
7981
mvn versions:set -DnewVersion=$$twNewVer
8082
echo -n $$twNewVer > VERSION
8183

82-
release: test gen-oci-image gen-appimage gen-portableapp ## Release
84+
release-github: test gen-oci-image gen-appimage gen-portableapp ## Release on GitHub
8385
read -p "Publish image (y/n)? " answer
8486
case $$answer in \
8587
y|Y ) \

README.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@
2525

2626
## Requirements
2727

28-
- Linux or WSL2 for AppImage
28+
- Windows *(x64)* or Linux *(x64 or aarch64)* for Portable App
29+
- Linux *(x64 or aarch64)* for AppImage
2930
- Docker or [Podman](https://podman.io/) for OCI image
3031

3132
## Configuration
@@ -36,30 +37,33 @@ See [TinyWorld Configuration](cfg/README.md)
3637

3738
### Using Portable App
3839

39-
Untar/Unzip downloaded portable package (several flavors available: with Linux JRE, with Windows JRE) then run provided TinyWorld script:
40+
Untar/Unzip downloaded portable package (several flavors available: with Linux JRE x64 or aarch64, with Windows JRE x64) then run provided TinyWorld script:
4041

4142
```sh
42-
# On Linux
43+
# On Linux (x64 or aarch64)
4344
<TinyWorld folder>/tinyworld.sh
4445

45-
# On Windows
46+
# On Windows (x64)
4647
<TinyWorld folder>\tinyworld.bat
4748
```
4849

4950
By default, 4Gb of memory is set via Xmx/Xms Java options: edit the script to change any Java options.
5051

51-
### Using AppImage on Linux/WSL2
52+
> The `tools` folder **must be added** to your PATH environment variable.
53+
54+
### Using AppImage on Linux
5255

5356
```sh
54-
chmod +x TinyWorld-<release version>-x86_64.AppImage
55-
./TinyWorld-<release version>-x86_64.AppImage
57+
chmod +x tinyworld-<x86_64|aarch64>-<release version>.AppImage
58+
59+
./tinyworld-<x86_64|aarch64>-<release version>.AppImage
5660
```
5761

5862
By default, 4Gb of memory is set via Xmx/Xms Java options. You can override this and add other options using the JAVA_OPTS env var:
5963

6064
```sh
6165
# E.g. 2Gb max, 1Gb min
62-
JAVA_OPTS="-Xmx2048m -Xms1024m" ./TinyWorld-<release version>-x86_64.AppImage
66+
JAVA_OPTS="-Xmx2048m -Xms1024m" ./tinyworld-<x86_64|aarch64>-<release version>.AppImage
6367
```
6468

6569
### Using OCI Image
@@ -95,7 +99,11 @@ See [instructions](ui/TEST.md).
9599
- Podman *(to generate TinyWorld OCI image)*
96100
- [FUSE](https://github.com/libfuse/libfuse) *(to generate TinyWorld AppImage)*
97101

98-
> *On Ubuntu 22.04+, install required FUSE library using `sudo apt install libfuse2`*
102+
> *On Ubuntu / Debian, install required FUSE library using `sudo apt install libfuse2`*
103+
>
104+
> *On Chrome OS, install required FUSE library using `sudo apt install fuse`*
105+
106+
> *Note: for AppImage package, you'll only be able to generate the package for the platform you're running on (e.g. aarch64 AppImage if you use an arm/aarch64 platform).*
99107
100108
### Building from Source
101109

@@ -128,7 +136,7 @@ See [Contributing Guide](CONTRIBUTING.md)
128136

129137
## Deps & Credits
130138

131-
TinyWorld is built upon lots of great projects. Main ones are listed below.
139+
TinyWorld is built upon lots of great projects. Main ones are:
132140

133141
- NASA WorldWind Java: <https://github.com/NASAWorldWind/WorldWindJava>
134142
- OpenSearch: <https://github.com/opensearch-project/OpenSearch>

RELEASE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
1) Build, test, package and publish
44

55
```sh
6-
make release
6+
make release-github
77
```
88

99
2) Tag the release

build-tools/.classpath

Lines changed: 0 additions & 32 deletions
This file was deleted.

build-tools/.project

Lines changed: 0 additions & 23 deletions
This file was deleted.

build-tools/.settings/org.eclipse.core.resources.prefs

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)