Launcher packaged.

This commit is contained in:
Pieter-Jan Briers
2019-07-30 01:08:36 +02:00
parent e00a737285
commit 29b00fc633
7 changed files with 85 additions and 12 deletions

5
BuildFiles/Linux/SS14.Launcher Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
cd "$(dirname "$0")"
exec mono bin/SS14.Launcher.exe

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleName</key>
<string>SS14L</string>
<key>CFBundleDisplayName</key>
<string>Space Station 14 Launcher</string>
<key>CFBundleExecutable</key>
<string>SS14</string>
<!--
Just a note about this icon.
MacOS seems REALLY iffy about this and even when the file is correct,
it can take forever before it decides to actually update it and display it.
TL;DR Apple is stupid.
-->
<key>CFBundleIconFile</key>
<string>ss14</string>
</dict>
</plist>

View File

@@ -0,0 +1,8 @@
#!/bin/sh
# cd to file containing script or something?
BASEDIR=$(dirname "$0")
echo "$BASEDIR"
cd "$BASEDIR"
exec /Library/Frameworks/Mono.framework/Versions/Current/Commands/mono ../Resources/SS14.Launcher.exe

View File

@@ -1 +0,0 @@
call Godot\godot.windows.tools.64.mono.exe --path SS14.Client.Godot

View File

@@ -0,0 +1 @@
call bin/SS14.Launcher.exe

View File

@@ -44,8 +44,12 @@ SERVER_IGNORED_RESOURCES = {
"Shaders", "Shaders",
} }
LAUNCHER_RESOURCES = {
"Nano",
"Fonts",
}
def main(): def main():
global GODOT
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(
description="Packages the SS14 content repo for release on all platforms.") description="Packages the SS14 content repo for release on all platforms.")
parser.add_argument("--platform", parser.add_argument("--platform",
@@ -72,7 +76,7 @@ def main():
build_windows() build_windows()
if "linux" in platforms: if "linux" in platforms:
wipe_bin() #wipe_bin()
build_linux() build_linux()
if "mac" in platforms: if "mac" in platforms:
@@ -125,6 +129,15 @@ def build_windows():
copy_content_assemblies(p("Resources", "Assemblies"), server_zip, server=True) copy_content_assemblies(p("Resources", "Assemblies"), server_zip, server=True)
server_zip.close() server_zip.close()
print(Fore.GREEN + "Packaging Windows x64 launcher..." + Style.RESET_ALL)
launcher_zip = zipfile.ZipFile(p("release", "SS14.Launcher_Windows_x64.zip"), "w",
compression=zipfile.ZIP_DEFLATED)
copy_dir_into_zip(p("bin", "SS14.Launcher"), "bin", launcher_zip)
copy_launcher_resources(p("bin", "Resources"), launcher_zip)
launcher_zip.write(p("BuildFiles", "Windows", "run_me.bat"), "run_me.bat")
launcher_zip.close()
def build_macos(): def build_macos():
print(Fore.GREEN + "Building project for macOS x64..." + Style.RESET_ALL) print(Fore.GREEN + "Building project for macOS x64..." + Style.RESET_ALL)
@@ -161,6 +174,17 @@ def build_macos():
copy_content_assemblies(p("Resources", "Assemblies"), server_zip, server=True) copy_content_assemblies(p("Resources", "Assemblies"), server_zip, server=True)
server_zip.close() server_zip.close()
print(Fore.GREEN + "Packaging macOS x64 launcher..." + Style.RESET_ALL)
launcher_zip = zipfile.ZipFile(p("release", "SS14.Launcher_macOS_x64.zip"), "w",
compression=zipfile.ZIP_DEFLATED)
contents = p("Space Station 14 Launcher.app", "Contents", "Resources")
copy_dir_into_zip(p("BuildFiles", "Mac", "Space Station 14 Launcher.app"), "Space Station 14 Launcher.app", launcher_zip)
copy_dir_into_zip(p("bin", "SS14.Launcher"), contents, launcher_zip)
copy_launcher_resources(p(contents, "Resources"), launcher_zip)
launcher_zip.close()
def build_linux(): def build_linux():
# Run a full build. # Run a full build.
@@ -197,21 +221,37 @@ def build_linux():
copy_content_assemblies(p("Resources", "Assemblies"), server_zip, server=True) copy_content_assemblies(p("Resources", "Assemblies"), server_zip, server=True)
server_zip.close() server_zip.close()
print(Fore.GREEN + "Packaging Linux x64 launcher..." + Style.RESET_ALL)
launcher_zip = zipfile.ZipFile(p("release", "SS14.Launcher_Linux_x64.zip"), "w",
compression=zipfile.ZIP_DEFLATED)
copy_dir_into_zip(p("bin", "SS14.Launcher"), "bin", launcher_zip)
copy_launcher_resources(p("bin", "Resources"), launcher_zip)
launcher_zip.write(p("BuildFiles", "Linux", "SS14.Launcher"), "SS14.Launcher")
launcher_zip.close()
def copy_resources(target, zipf, server): def copy_resources(target, zipf, server):
# Content repo goes FIRST so that it won't override engine files as that's forbidden. # Content repo goes FIRST so that it won't override engine files as that's forbidden.
do_resource_copy(target, "Resources", zipf, server) ignore_set = SHARED_IGNORED_RESOURCES
do_resource_copy(target, p("RobustToolbox", "Resources"), zipf, server) if server:
ignore_set = ignore_set.union(SERVER_IGNORED_RESOURCES)
else:
ignore_set = ignore_set.union(CLIENT_IGNORED_RESOURCES)
do_resource_copy(target, "Resources", zipf, ignore_set)
do_resource_copy(target, p("RobustToolbox", "Resources"), zipf, ignore_set)
def do_resource_copy(target, source, zipf, server): def copy_launcher_resources(target, zipf):
# Copy all engine resources, since those are stripped down enough now.
do_resource_copy(target, p("RobustToolbox", "Resources"), zipf, SHARED_IGNORED_RESOURCES)
for folder in LAUNCHER_RESOURCES:
copy_dir_into_zip(p("Resources", folder), p(target, folder), zipf)
def do_resource_copy(target, source, zipf, ignore_set):
for filename in os.listdir(source): for filename in os.listdir(source):
if filename in SHARED_IGNORED_RESOURCES \ if filename in ignore_set:
or filename in (SERVER_IGNORED_RESOURCES if server else CLIENT_IGNORED_RESOURCES):
continue
# Get rid of Godot .import files, thanks.
if filename.endswith(".import"):
continue continue
path = p(source, filename) path = p(source, filename)