Switch macOS packages to .NET 5.
This commit is contained in:
5
.github/workflows/packaging.yml
vendored
5
.github/workflows/packaging.yml
vendored
@@ -39,6 +39,11 @@ jobs:
|
||||
- name: Clone Repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Install .NET 5
|
||||
uses: actions/setup-dotnet@v1
|
||||
with:
|
||||
dotnet-version: '5.0.x'
|
||||
|
||||
- name: Prepare Environment
|
||||
run: echo "GIT_TAG=${GITHUB_REF#refs/tags/}" >> ${GITHUB_ENV}
|
||||
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
# Used by:
|
||||
# Makefile (install target for local installs and downstream packaging)
|
||||
# Linux AppImage packaging
|
||||
# macOS packaging
|
||||
# Mod SDK Linux AppImage packaging
|
||||
# Mod SDK macOS packaging
|
||||
# Mod SDK Windows packaging
|
||||
@@ -107,6 +106,7 @@ install_assemblies_mono() {
|
||||
# COPY_D2K_DLL: If set to True the OpenRA.Mods.D2k.dll will also be copied (True, False)
|
||||
# Used by:
|
||||
# Windows packaging
|
||||
# macOS packaging
|
||||
install_assemblies() {
|
||||
SRC_PATH="${1}"
|
||||
DEST_PATH="${2}"
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>{MOD_NAME}</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>OpenRA</string>
|
||||
<string>Launcher</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>{MOD_ID}.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
||||
@@ -55,13 +55,15 @@ modify_plist() {
|
||||
|
||||
# Copies the game files and sets metadata
|
||||
build_app() {
|
||||
TEMPLATE_DIR="${1}"
|
||||
LAUNCHER_DIR="${2}"
|
||||
MOD_ID="${3}"
|
||||
MOD_NAME="${4}"
|
||||
DISCORD_APPID="${5}"
|
||||
PLATFORM="${1}"
|
||||
TEMPLATE_DIR="${2}"
|
||||
LAUNCHER_DIR="${3}"
|
||||
MOD_ID="${4}"
|
||||
MOD_NAME="${5}"
|
||||
DISCORD_APPID="${6}"
|
||||
|
||||
LAUNCHER_CONTENTS_DIR="${LAUNCHER_DIR}/Contents"
|
||||
LAUNCHER_ASSEMBLY_DIR="${LAUNCHER_CONTENTS_DIR}/MacOS"
|
||||
LAUNCHER_RESOURCES_DIR="${LAUNCHER_CONTENTS_DIR}/Resources"
|
||||
|
||||
cp -r "${TEMPLATE_DIR}" "${LAUNCHER_DIR}"
|
||||
@@ -72,7 +74,12 @@ build_app() {
|
||||
fi
|
||||
|
||||
# Install engine and mod files
|
||||
install_assemblies_mono "${SRCDIR}" "${LAUNCHER_RESOURCES_DIR}" "osx-x64" "True" "True" "${IS_D2K}"
|
||||
if [ "${PLATFORM}" = "compat" ]; then
|
||||
install_assemblies_mono "${SRCDIR}" "${LAUNCHER_ASSEMBLY_DIR}" "osx-x64" "True" "True" "${IS_D2K}"
|
||||
else
|
||||
install_assemblies "${SRCDIR}" "${LAUNCHER_ASSEMBLY_DIR}" "osx-x64" "True" "True" "${IS_D2K}"
|
||||
fi
|
||||
|
||||
install_data "${SRCDIR}" "${LAUNCHER_RESOURCES_DIR}" "${MOD_ID}"
|
||||
set_engine_version "${TAG}" "${LAUNCHER_RESOURCES_DIR}"
|
||||
set_mod_version "${TAG}" "${LAUNCHER_RESOURCES_DIR}/mods/${MOD_ID}/mod.yaml" "${LAUNCHER_RESOURCES_DIR}/mods/modcontent/mod.yaml"
|
||||
@@ -99,7 +106,6 @@ build_app() {
|
||||
|
||||
# Sign binaries with developer certificate
|
||||
if [ -n "${MACOS_DEVELOPER_IDENTITY}" ]; then
|
||||
codesign -s "${MACOS_DEVELOPER_IDENTITY}" --timestamp --options runtime -f --entitlements entitlements.plist "${LAUNCHER_RESOURCES_DIR}/"*.dylib
|
||||
codesign -s "${MACOS_DEVELOPER_IDENTITY}" --timestamp --options runtime -f --entitlements entitlements.plist --deep "${LAUNCHER_DIR}"
|
||||
fi
|
||||
}
|
||||
@@ -120,23 +126,15 @@ build_platform() {
|
||||
|
||||
if [ "${PLATFORM}" = "compat" ]; then
|
||||
modify_plist "{MINIMUM_SYSTEM_VERSION}" "10.9" "${TEMPLATE_DIR}/Contents/Info.plist"
|
||||
clang -m64 launcher-mono.m -o "${TEMPLATE_DIR}/Contents/MacOS/OpenRA" -framework AppKit -mmacosx-version-min=10.9
|
||||
clang -m64 launcher-mono.m -o "${TEMPLATE_DIR}/Contents/MacOS/Launcher" -framework AppKit -mmacosx-version-min=10.9
|
||||
else
|
||||
modify_plist "{MINIMUM_SYSTEM_VERSION}" "10.13" "${TEMPLATE_DIR}/Contents/Info.plist"
|
||||
clang -m64 launcher.m -o "${TEMPLATE_DIR}/Contents/MacOS/OpenRA" -framework AppKit -mmacosx-version-min=10.13
|
||||
|
||||
curl -s -L -O https://github.com/OpenRA/OpenRALauncherOSX/releases/download/${MONO_TAG}/mono.zip || exit 3
|
||||
unzip -qq -d "${BUILTDIR}/mono" mono.zip
|
||||
mv "${BUILTDIR}/mono/mono" "${TEMPLATE_DIR}/Contents/MacOS/"
|
||||
mv "${BUILTDIR}/mono/etc" "${TEMPLATE_DIR}/Contents/Resources"
|
||||
mv "${BUILTDIR}/mono/lib" "${TEMPLATE_DIR}/Contents/Resources"
|
||||
rm mono.zip
|
||||
rmdir "${BUILTDIR}/mono"
|
||||
clang -m64 launcher.m -o "${TEMPLATE_DIR}/Contents/MacOS/Launcher" -framework AppKit -mmacosx-version-min=10.13
|
||||
fi
|
||||
|
||||
build_app "${TEMPLATE_DIR}" "${BUILTDIR}/OpenRA - Red Alert.app" "ra" "Red Alert" "699222659766026240"
|
||||
build_app "${TEMPLATE_DIR}" "${BUILTDIR}/OpenRA - Tiberian Dawn.app" "cnc" "Tiberian Dawn" "699223250181292033"
|
||||
build_app "${TEMPLATE_DIR}" "${BUILTDIR}/OpenRA - Dune 2000.app" "d2k" "Dune 2000" "712711732770111550"
|
||||
build_app "${PLATFORM}" "${TEMPLATE_DIR}" "${BUILTDIR}/OpenRA - Red Alert.app" "ra" "Red Alert" "699222659766026240"
|
||||
build_app "${PLATFORM}" "${TEMPLATE_DIR}" "${BUILTDIR}/OpenRA - Tiberian Dawn.app" "cnc" "Tiberian Dawn" "699223250181292033"
|
||||
build_app "${PLATFORM}" "${TEMPLATE_DIR}" "${BUILTDIR}/OpenRA - Dune 2000.app" "d2k" "Dune 2000" "712711732770111550"
|
||||
|
||||
rm -rf "${TEMPLATE_DIR}"
|
||||
|
||||
|
||||
@@ -262,8 +262,9 @@ static int check_mono_version(const char *version, const char *req_version)
|
||||
|
||||
NSMutableArray *launchArgs = [NSMutableArray arrayWithCapacity: [gameArgs count] + 2];
|
||||
[launchArgs addObject: @"--debug"];
|
||||
[launchArgs addObject: [gamePath stringByAppendingPathComponent: gameName]];
|
||||
[launchArgs addObject: [exePath stringByAppendingPathComponent: gameName]];
|
||||
[launchArgs addObject: [NSString stringWithFormat:@"Engine.LaunchPath=\"%@\"", engineLaunchPath]];
|
||||
[launchArgs addObject: [NSString stringWithFormat:@"Engine.EngineDir=../Resources"]];
|
||||
|
||||
if (modId)
|
||||
[launchArgs addObject: [NSString stringWithFormat:@"Game.Mod=%@", modId]];
|
||||
|
||||
@@ -131,16 +131,11 @@ NSTask *gameTask;
|
||||
launched = YES;
|
||||
|
||||
// Default values - can be overriden by setting certain keys Info.plist
|
||||
NSString *gameName = @"OpenRA.dll";
|
||||
NSString *modId = nil;
|
||||
|
||||
NSDictionary *plist = [[NSBundle mainBundle] infoDictionary];
|
||||
if (plist)
|
||||
{
|
||||
NSString *exeValue = [plist objectForKey:@"MonoGameExe"];
|
||||
if (exeValue && [exeValue length] > 0)
|
||||
gameName = exeValue;
|
||||
|
||||
NSString *modIdValue = [plist objectForKey:@"ModId"];
|
||||
if (modIdValue && [modIdValue length] > 0)
|
||||
modId = modIdValue;
|
||||
@@ -149,21 +144,20 @@ NSTask *gameTask;
|
||||
NSString *exePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent: @"Contents/MacOS/"];
|
||||
NSString *gamePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent: @"Contents/Resources/"];
|
||||
|
||||
NSString *launchPath = [exePath stringByAppendingPathComponent: @"mono"];
|
||||
NSString *appPath = [exePath stringByAppendingPathComponent: @"OpenRA"];
|
||||
NSString *launchPath = [exePath stringByAppendingPathComponent: @"OpenRA"];
|
||||
NSString *appPath = [exePath stringByAppendingPathComponent: @"Launcher"];
|
||||
NSString *engineLaunchPath = [self resolveTranslocatedPath: appPath];
|
||||
|
||||
NSMutableArray *launchArgs = [NSMutableArray arrayWithCapacity: [gameArgs count] + 2];
|
||||
[launchArgs addObject: @"--debug"];
|
||||
[launchArgs addObject: [gamePath stringByAppendingPathComponent: gameName]];
|
||||
[launchArgs addObject: [NSString stringWithFormat:@"Engine.LaunchPath=\"%@\"", engineLaunchPath]];
|
||||
[launchArgs addObject: [NSString stringWithFormat:@"Engine.EngineDir=../Resources"]];
|
||||
|
||||
if (modId)
|
||||
[launchArgs addObject: [NSString stringWithFormat:@"Game.Mod=%@", modId]];
|
||||
|
||||
[launchArgs addObjectsFromArray: gameArgs];
|
||||
|
||||
NSLog(@"Running mono with arguments:");
|
||||
NSLog(@"Running OpenRA with arguments:");
|
||||
for (size_t i = 0; i < [launchArgs count]; i++)
|
||||
NSLog(@"%@", [launchArgs objectAtIndex: i]);
|
||||
|
||||
@@ -172,12 +166,6 @@ NSTask *gameTask;
|
||||
[gameTask setLaunchPath: launchPath];
|
||||
[gameTask setArguments: launchArgs];
|
||||
|
||||
NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary: [[NSProcessInfo processInfo] environment]];
|
||||
[environment setObject: [gamePath stringByAppendingPathComponent: @"lib/mono/4.5"] forKey: @"MONO_PATH"];
|
||||
[environment setObject: [gamePath stringByAppendingPathComponent: @"etc"] forKey: @"MONO_CFG_DIR"];
|
||||
[environment setObject: [gamePath stringByAppendingPathComponent: @"etc/mono/config"] forKey: @"MONO_CONFIG"];
|
||||
[gameTask setEnvironment: environment];
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver: self
|
||||
selector: @selector(taskExited:)
|
||||
|
||||
Reference in New Issue
Block a user