diff --git a/buildapp/build_app_linux_arm.sh b/buildapp/build_app_linux_arm.sh index bc2d21379..cfaa95603 100755 --- a/buildapp/build_app_linux_arm.sh +++ b/buildapp/build_app_linux_arm.sh @@ -9,8 +9,8 @@ RUNTIME="runtime-linux-arm" DESKTOPFILE="../out/build_autogen_linux.desktop" JARNAME="TerrarumBuild.jar" -if [ ! -d "../assets_release" ]; then - echo "'assets_release' does not exist; prepare the assets for the release and put them into the assets_release directory, exiting now." >&2 +if [ ! -f "out/assets.tar.zst" ] || [ ! -f "out/assets.manifest" ]; then + echo "'assets.tar.zst' or 'assets.manifest' not found in out/; run 'make assets' first." >&2 exit 1 fi @@ -27,11 +27,11 @@ chmod +x $DESTDIR/AppRun # Copy over a Java runtime mkdir $DESTDIR/out cp -r "../out/$RUNTIME" $DESTDIR/out/ -mv $DESTDIR/out/$RUNTIME/bin/java $DESTDIR/out/$RUNTIME/bin/Terrarum +mv $DESTDIR/out/$RUNTIME/bin/java $DESTDIR/out/$RUNTIME/bin/java -# Copy over all the assets and a jarfile -cp -r "../assets_release" $DESTDIR/ -mv $DESTDIR/assets_release $DESTDIR/assets +# Copy over the asset archive, manifest, and jarfile +cp "out/assets.tar.zst" $DESTDIR/ +cp "out/assets.manifest" $DESTDIR/ cp "../out/$JARNAME" $DESTDIR/out/ # Pack everything to AppImage diff --git a/buildapp/build_app_linux_x86.sh b/buildapp/build_app_linux_x86.sh index 5ab227042..597a6d37f 100755 --- a/buildapp/build_app_linux_x86.sh +++ b/buildapp/build_app_linux_x86.sh @@ -9,8 +9,8 @@ RUNTIME="runtime-linux-x86" DESKTOPFILE="../out/build_autogen_linux.desktop" JARNAME="TerrarumBuild.jar" -if [ ! -d "../assets_release" ]; then - echo "'assets_release' does not exist; prepare the assets for the release and put them into the assets_release directory, exiting now." >&2 +if [ ! -f "out/assets.tar.zst" ] || [ ! -f "out/assets.manifest" ]; then + echo "'assets.tar.zst' or 'assets.manifest' not found in out/; run 'make assets' first." >&2 exit 1 fi @@ -27,11 +27,11 @@ chmod +x $DESTDIR/AppRun # Copy over a Java runtime mkdir $DESTDIR/out cp -r "../out/$RUNTIME" $DESTDIR/out/ -mv $DESTDIR/out/$RUNTIME/bin/java $DESTDIR/out/$RUNTIME/bin/Terrarum +mv $DESTDIR/out/$RUNTIME/bin/java $DESTDIR/out/$RUNTIME/bin/java -# Copy over all the assets and a jarfile -cp -r "../assets_release" $DESTDIR/ -mv $DESTDIR/assets_release $DESTDIR/assets +# Copy over the asset archive, manifest, and jarfile +cp "out/assets.tar.zst" $DESTDIR/ +cp "out/assets.manifest" $DESTDIR/ cp "../out/$JARNAME" $DESTDIR/out/ # Pack everything to AppImage diff --git a/buildapp/build_app_mac_arm.sh b/buildapp/build_app_mac_arm.sh index 06b91e05a..5e20ae6af 100755 --- a/buildapp/build_app_mac_arm.sh +++ b/buildapp/build_app_mac_arm.sh @@ -9,8 +9,8 @@ RUNTIME="runtime-osx-arm" PLISTFILE="../out/build_autogen_macos_Info.plist" JARNAME="TerrarumBuild.jar" -if [ ! -d "../assets_release" ]; then - echo "'assets_release' does not exist; prepare the assets for the release and put them into the assets_release directory, exiting now." >&2 +if [ ! -f "out/assets.tar.zst" ] || [ ! -f "out/assets.manifest" ]; then + echo "'assets.tar.zst' or 'assets.manifest' not found in out/; run 'make assets' first." >&2 exit 1 fi @@ -30,11 +30,11 @@ cp $PLISTFILE $DESTDIR/Contents/Info.plist # Copy over a Java runtime mkdir $DESTDIR/Contents/MacOS/out cp -r "../out/$RUNTIME" $DESTDIR/Contents/MacOS/out/ -mv $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/Terrarum +mv $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java -# Copy over all the assets and a jarfile -cp -r "../assets_release" $DESTDIR/Contents/MacOS/ -mv $DESTDIR/Contents/MacOS/assets_release $DESTDIR/Contents/MacOS/assets +# Copy over the asset archive, manifest, and jarfile +cp "out/assets.tar.zst" $DESTDIR/Contents/MacOS/ +cp "out/assets.manifest" $DESTDIR/Contents/MacOS/ cp "../out/$JARNAME" $DESTDIR/Contents/MacOS/out/ # zip everything diff --git a/buildapp/build_app_mac_x86.sh b/buildapp/build_app_mac_x86.sh index a0b867b24..f5e9c6e35 100755 --- a/buildapp/build_app_mac_x86.sh +++ b/buildapp/build_app_mac_x86.sh @@ -9,8 +9,8 @@ RUNTIME="runtime-osx-x86" PLISTFILE="../out/build_autogen_macos_Info.plist" JARNAME="TerrarumBuild.jar" -if [ ! -d "../assets_release" ]; then - echo "'assets_release' does not exist; prepare the assets for the release and put them into the assets_release directory, exiting now." >&2 +if [ ! -f "out/assets.tar.zst" ] || [ ! -f "out/assets.manifest" ]; then + echo "'assets.tar.zst' or 'assets.manifest' not found in out/; run 'make assets' first." >&2 exit 1 fi @@ -30,11 +30,11 @@ cp $PLISTFILE $DESTDIR/Contents/Info.plist # Copy over a Java runtime mkdir $DESTDIR/Contents/MacOS/out cp -r "../out/$RUNTIME" $DESTDIR/Contents/MacOS/out/ -mv $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/Terrarum +mv $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java $DESTDIR/Contents/MacOS/out/$RUNTIME/bin/java -# Copy over all the assets and a jarfile -cp -r "../assets_release" $DESTDIR/Contents/MacOS/ -mv $DESTDIR/Contents/MacOS/assets_release $DESTDIR/Contents/MacOS/assets +# Copy over the asset archive, manifest, and jarfile +cp "out/assets.tar.zst" $DESTDIR/Contents/MacOS/ +cp "out/assets.manifest" $DESTDIR/Contents/MacOS/ cp "../out/$JARNAME" $DESTDIR/Contents/MacOS/out/ # zip everything diff --git a/buildapp/build_app_windows_x86.sh b/buildapp/build_app_windows_x86.sh index b2196808b..8bf1b85c4 100755 --- a/buildapp/build_app_windows_x86.sh +++ b/buildapp/build_app_windows_x86.sh @@ -8,8 +8,8 @@ RUNTIME="runtime-windows-x86" RCFILE="../out/build_autogen_windows.rc" JARNAME="TerrarumBuild.jar" -if [ ! -d "../assets_release" ]; then - echo "'assets_release' does not exist; prepare the assets for the release and put them into the assets_release directory, exiting now." >&2 +if [ ! -f "out/assets.tar.zst" ] || [ ! -f "out/assets.manifest" ]; then + echo "'assets.tar.zst' or 'assets.manifest' not found in out/; run 'make assets' first." >&2 exit 1 fi @@ -32,12 +32,12 @@ x86_64-w64-mingw32-gcc -Os -s -o $DESTDIR/Terrarum.exe $SRCFILES/Terrarum.c $RCF # Copy over a Java runtime mkdir $DESTDIR/out cp -r "../out/$RUNTIME" $DESTDIR/out/ -mv $DESTDIR/out/$RUNTIME/bin/java.exe $DESTDIR/out/$RUNTIME/bin/Terrarum.exe +mv $DESTDIR/out/$RUNTIME/bin/java.exe $DESTDIR/out/$RUNTIME/bin/java.exe -# Copy over all the assets and a jarfile -cp -r "../assets_release" $DESTDIR/ -mv $DESTDIR/assets_release $DESTDIR/assets -cp "../out/$JARNAME" $DESTDIR/out/ +# Copy over the asset archive, manifest, and jarfile +cp "out/assets.tar.zst" $DESTDIR/ +cp "out/assets.manifest" $DESTDIR/ +cp "../out/$JARNAME" $DESTDIR/out/ # zip everything rm "out/$DESTDIR.zip" diff --git a/buildapp/terrarum.manifest b/buildapp/terrarum.manifest new file mode 100644 index 000000000..52b64bc4a --- /dev/null +++ b/buildapp/terrarum.manifest @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/buildapp/terrarumlinux_arm/AppRun b/buildapp/terrarumlinux_arm/AppRun index fb5734fe6..fe33bed94 100755 --- a/buildapp/terrarumlinux_arm/AppRun +++ b/buildapp/terrarumlinux_arm/AppRun @@ -1,3 +1,3 @@ #!/bin/bash cd "${0%/*}" -./out/runtime-linux-arm/bin/Terrarum -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./out/TerrarumBuild.jar +./out/runtime-linux-arm/bin/java -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./out/TerrarumBuild.jar diff --git a/buildapp/terrarumlinux_x86/AppRun b/buildapp/terrarumlinux_x86/AppRun index 31213397f..6d59e7769 100755 --- a/buildapp/terrarumlinux_x86/AppRun +++ b/buildapp/terrarumlinux_x86/AppRun @@ -1,3 +1,3 @@ #!/bin/bash cd "${0%/*}" -./out/runtime-linux-x86/bin/Terrarum -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./out/TerrarumBuild.jar +./out/runtime-linux-x86/bin/java -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd -jar ./out/TerrarumBuild.jar diff --git a/buildapp/terrarummac_arm/Terrarum.sh b/buildapp/terrarummac_arm/Terrarum.sh index 2ffa2a311..1a34ab184 100755 --- a/buildapp/terrarummac_arm/Terrarum.sh +++ b/buildapp/terrarummac_arm/Terrarum.sh @@ -1,3 +1,3 @@ #!/bin/bash cd "${0%/*}" -./out/runtime-osx-arm/bin/Terrarum -jar ./out/TerrarumBuild.jar +./out/runtime-osx-arm/bin/java -jar ./out/TerrarumBuild.jar diff --git a/buildapp/terrarummac_x86/Terrarum.sh b/buildapp/terrarummac_x86/Terrarum.sh index a3ef72298..83770a025 100755 --- a/buildapp/terrarummac_x86/Terrarum.sh +++ b/buildapp/terrarummac_x86/Terrarum.sh @@ -1,3 +1,3 @@ #!/bin/bash cd "${0%/*}" -./out/runtime-osx-x86/bin/Terrarum -jar ./out/TerrarumBuild.jar +./out/runtime-osx-x86/bin/java -jar ./out/TerrarumBuild.jar diff --git a/buildapp/terrarumwindows_x86/Terrarum.c b/buildapp/terrarumwindows_x86/Terrarum.c index da9f06ec0..596a884d8 100644 --- a/buildapp/terrarumwindows_x86/Terrarum.c +++ b/buildapp/terrarumwindows_x86/Terrarum.c @@ -1,11 +1,28 @@ #include -#include -#include int main() { + STARTUPINFOA si = {0}; + PROCESS_INFORMATION pi = {0}; + si.cb = sizeof(si); + si.dwFlags = STARTF_USESHOWWINDOW; + si.wShowWindow = SW_HIDE; - ShellExecute(NULL, "open", "\".\\out\\runtime-windows-x86\\bin\\Terrarum.exe\"", "-jar \".\\out\\TerrarumBuild.jar\"", NULL, SW_HIDE); + char cmd[] = "\".\\out\\runtime-windows-x86\\bin\\java.exe\" -jar \".\\out\\TerrarumBuild.jar\""; + + CreateProcessA( + NULL, + cmd, + NULL, + NULL, + FALSE, + 0, + NULL, + ".\\out\\runtime-windows-x86\\bin", + &si, + &pi + ); + + CloseHandle(pi.hProcess); + CloseHandle(pi.hThread); return 0; - - //return system(".\\out\\runtime-windows-x86\\bin\\Terrarum.exe -jar .\\out\\TerrarumBuild.jar"); -} \ No newline at end of file +} diff --git a/src/net/torvald/terrarum/Prebuild.kt b/src/net/torvald/terrarum/Prebuild.kt index 47a44b70f..8c7f1bd84 100644 --- a/src/net/torvald/terrarum/Prebuild.kt +++ b/src/net/torvald/terrarum/Prebuild.kt @@ -10,6 +10,7 @@ import java.time.ZonedDateTime private fun writeWindowsRC(major: Int, minor: Int, patch: Int) { val s = """1 ICON "icns.ico" +1 RT_MANITEST "terrarum.manifest" VS_VERSION_INFO VERSIONINFO FILEVERSION $major,$minor,$patch,0 PRODUCTVERSION $major,$minor,$patch,0 diff --git a/src/net/torvald/terrarum/Principii.java b/src/net/torvald/terrarum/Principii.java index a6e577ddd..04c69e6a7 100644 --- a/src/net/torvald/terrarum/Principii.java +++ b/src/net/torvald/terrarum/Principii.java @@ -96,7 +96,7 @@ public class Principii { extracmd0 += " -Dswing.aatext=true -Dawt.useSystemAAFontSettings=lcd"; } - String runtime = new File("out/"+runtimeRoot+"/bin/Terrarum").getAbsolutePath(); // /bin/Terrarum is just a renamed version of /bin/java + String runtime = new File("out/"+runtimeRoot+"/bin/java").getAbsolutePath(); System.out.println("Runtime path: "+runtime);