diff --git a/OpenRA.Launcher.Mac/Controller.h b/OpenRA.Launcher.Mac/Controller.h deleted file mode 100644 index df1d562fae..0000000000 --- a/OpenRA.Launcher.Mac/Controller.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ - -#import - -@interface Controller : NSObject -{ - NSString *monoPath; - NSString *gamePath; - - IBOutlet NSWindow *window; -} -- (void)launch; -- (BOOL)initMono; -- (BOOL)shouldHideMenubar; -@end diff --git a/OpenRA.Launcher.Mac/Controller.m b/OpenRA.Launcher.Mac/Controller.m deleted file mode 100644 index c3cb70d599..0000000000 --- a/OpenRA.Launcher.Mac/Controller.m +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#import "Controller.h" - -@implementation Controller - -+ (void)initialize -{ - [[NSUserDefaults standardUserDefaults] - registerDefaults:[NSDictionary dictionaryWithObject:[[NSBundle mainBundle] resourcePath] - forKey:@"gamepath"]]; -} - -extern char **environ; -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification -{ - gamePath = [[NSUserDefaults standardUserDefaults] stringForKey:@"gamepath"]; - - // Try and launch the game - if (![self initMono]) - { - NSAlert *alert = [NSAlert alertWithMessageText:@"Mono Framework" - defaultButton:@"Download Mono" - alternateButton:@"Quit" - otherButton:nil - informativeTextWithFormat:@"OpenRA requires the Mono Framework version 2.10 or later."]; - - if ([alert runModal] == NSAlertDefaultReturn) - [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.go-mono.com/mono-downloads/download.html"]]; - - [[NSApplication sharedApplication] terminate:self]; - } - - [self launch]; - [NSApp terminate: nil]; -} - -- (BOOL)shouldHideMenubar -{ - NSTask *task = [[[NSTask alloc] init] autorelease]; - NSPipe *pipe = [NSPipe pipe]; - - NSMutableArray *taskArgs = [NSMutableArray arrayWithObjects:@"OpenRA.Utility.exe", - @"--settings-value", - @"Graphics.Mode", nil]; - - [task setCurrentDirectoryPath:gamePath]; - [task setLaunchPath:monoPath]; - [task setArguments:taskArgs]; - [task setStandardOutput:pipe]; - NSFileHandle *readHandle = [pipe fileHandleForReading]; - [task launch]; - [task waitUntilExit]; - - if ([task terminationStatus] != 0) - { - NSAlert *alert = [NSAlert alertWithMessageText:@"Error" - defaultButton:@"Quit" - alternateButton:nil - otherButton:nil - informativeTextWithFormat:@"OpenRA.Utility returned an error and cannot continue.\n\nA log has been saved to ~/Library/Application Support/OpenRA/Logs/utility.log"]; - - [alert runModal]; - [[NSApplication sharedApplication] terminate:self]; - - } - - NSString *response = [[[NSString alloc] initWithData:[readHandle readDataToEndOfFile] - encoding: NSUTF8StringEncoding] autorelease]; - return ![response isEqualToString:@"Windowed\n"]; -} - --(void)launch -{ - // Use LaunchServices because neither NSTask or NSWorkspace support Info.plist _and_ arguments pre-10.6 - - // First argument is the directory to run in - // Second...Nth arguments are passed to OpenRA.Game.exe - // Launcher wrapper sets mono --debug, gl renderer and support dir. - NSArray *args = [NSArray arrayWithObjects:@"--launch", - [self shouldHideMenubar] ? @"--hide-menubar" : @"--no-hide-menubar", - gamePath, - monoPath, - nil]; - FSRef appRef; - CFURLGetFSRef((CFURLRef)[NSURL URLWithString:[[[NSBundle mainBundle] executablePath] stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]], &appRef); - - // Set the launch parameters - LSApplicationParameters params; - params.version = 0; - params.flags = kLSLaunchDefaults | kLSLaunchNewInstance; - params.application = &appRef; - params.asyncLaunchRefCon = NULL; - params.environment = NULL; // CFDictionaryRef of environment variables; could be useful - params.argv = (CFArrayRef)args; - params.initialEvent = NULL; - - ProcessSerialNumber psn; - OSStatus err = LSOpenApplication(¶ms, &psn); - - // Bring the game window to the front - if (err == noErr) - SetFrontProcess(&psn); -} - - -- (BOOL)initMono -{ - // Find the users mono - NSPipe *outPipe = [NSPipe pipe]; - NSTask *task = [[NSTask alloc] init]; - [task setLaunchPath:@"/usr/bin/which"]; - [task setArguments:[NSMutableArray arrayWithObject:@"mono"]]; - [task setStandardOutput:outPipe]; - [task setStandardError:[task standardOutput]]; - [task launch]; - - NSData *data = [[outPipe fileHandleForReading] readDataToEndOfFile]; - [task waitUntilExit]; - [task release]; - - NSString *temp = [[[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding] autorelease]; - // Remove whitespace and resolve symlinks - monoPath = [[[temp stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]] - stringByResolvingSymlinksInPath] retain]; - - if (![monoPath length]) - return NO; - - // Find the mono version - outPipe = [NSPipe pipe]; - task = [[NSTask alloc] init]; - [task setLaunchPath:monoPath]; - [task setArguments:[NSMutableArray arrayWithObject:@"--version"]]; - [task setStandardOutput:outPipe]; - [task setStandardError:[task standardOutput]]; - [task launch]; - - data = [[outPipe fileHandleForReading] readDataToEndOfFile]; - [task waitUntilExit]; - [task release]; - - NSString *ret = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding]; - - int major = 0; - int minor = 0; - int point = 0; - sscanf([ret UTF8String], "Mono JIT compiler version %d.%d.%d", &major, &minor, &point); - [ret release]; - - return (major > 2 || (major == 2 && minor >= 10)); -} - -- (void)dealloc -{ - [monoPath release]; monoPath = nil; - [gamePath release]; gamePath = nil; - [super dealloc]; -} - -@end diff --git a/OpenRA.Launcher.Mac/English.lproj/InfoPlist.strings b/OpenRA.Launcher.Mac/English.lproj/InfoPlist.strings deleted file mode 100644 index 477b28ff8f..0000000000 --- a/OpenRA.Launcher.Mac/English.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/OpenRA.Launcher.Mac/English.lproj/MainMenu.xib b/OpenRA.Launcher.Mac/English.lproj/MainMenu.xib deleted file mode 100644 index dd81d1a4d6..0000000000 --- a/OpenRA.Launcher.Mac/English.lproj/MainMenu.xib +++ /dev/null @@ -1,1182 +0,0 @@ - - - - 1050 - 10J567 - 823 - 1038.35 - 462.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 823 - - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - YES - - NSApplication - - - FirstResponder - - - NSApplication - - - AMainMenu - - YES - - - OpenRA - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - OpenRA - - YES - - - About OpenRA - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences… - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Services - - 1048576 - 2147483647 - - - submenuAction: - - Services - - YES - - _NSServicesMenu - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide OpenRA - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit OpenRA - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - Window - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 2147483647 - - - submenuAction: - - Help - - YES - - - OpenRA Help - ? - 1048576 - 2147483647 - - - - - _NSHelpMenu - - - - _NSMainMenu - - - Controller - - - - - YES - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - orderFrontStandardAboutPanel: - - - - 142 - - - - performZoom: - - - - 240 - - - - hide: - - - - 367 - - - - hideOtherApplications: - - - - 368 - - - - unhideAllApplications: - - - - 370 - - - - terminate: - - - - 449 - - - - showHelp: - - - - 493 - - - - delegate - - - - 592 - - - - - YES - - 0 - - YES - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - YES - - - - - - - - 19 - - - YES - - - - - - 56 - - - YES - - - - - - 57 - - - YES - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 150 - - - - - 136 - - - - - 144 - - - - - 129 - - - - - 143 - - - - - 236 - - - - - 131 - - - YES - - - - - - 149 - - - - - 145 - - - - - 130 - - - - - 24 - - - YES - - - - - - - - - 92 - - - - - 5 - - - - - 239 - - - - - 23 - - - - - 490 - - - YES - - - - - - 491 - - - YES - - - - - - 492 - - - - - 579 - - - - - - - YES - - YES - -3.IBPluginDependency - 129.IBPluginDependency - 129.ImportedFromIB2 - 130.IBEditorWindowLastContentRect - 130.IBPluginDependency - 130.ImportedFromIB2 - 130.editorWindowContentRectSynchronizationRect - 131.IBPluginDependency - 131.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 143.IBPluginDependency - 143.ImportedFromIB2 - 144.IBPluginDependency - 144.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 19.IBPluginDependency - 19.ImportedFromIB2 - 23.IBPluginDependency - 23.ImportedFromIB2 - 236.IBPluginDependency - 236.ImportedFromIB2 - 239.IBPluginDependency - 239.ImportedFromIB2 - 24.IBEditorWindowLastContentRect - 24.IBPluginDependency - 24.ImportedFromIB2 - 24.editorWindowContentRectSynchronizationRect - 29.IBEditorWindowLastContentRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.WindowOrigin - 29.editorWindowContentRectSynchronizationRect - 490.IBPluginDependency - 491.IBEditorWindowLastContentRect - 491.IBPluginDependency - 492.IBPluginDependency - 5.IBPluginDependency - 5.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBEditorWindowLastContentRect - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 579.IBPluginDependency - 58.IBPluginDependency - 58.ImportedFromIB2 - 92.IBPluginDependency - 92.ImportedFromIB2 - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - {{582, 770}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{436, 809}, {64, 6}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{469, 763}, {194, 73}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{525, 802}, {197, 73}} - {{380, 836}, {221, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - - {74, 862} - {{6, 978}, {478, 20}} - com.apple.InterfaceBuilder.CocoaPlugin - {{540, 813}, {161, 23}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{392, 653}, {190, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - - {{23, 794}, {245, 183}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - YES - - - YES - - - - - YES - - - YES - - - - 593 - - - - YES - - Controller - NSObject - - window - NSWindow - - - window - - window - NSWindow - - - - IBProjectSource - Controller.h - - - - - YES - - NSApplication - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSApplication.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSApplicationScripting.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSColorPanel.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSHelpManager.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSPageLayout.h - - - - NSApplication - - IBFrameworkSource - AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - - - NSMenu - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenu.h - - - - NSMenuItem - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSAccessibility.h - - - - NSObject - - - - NSObject - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSControl.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDictionaryController.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSDragging.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontManager.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSFontPanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSKeyValueBinding.h - - - - NSObject - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSNibLoading.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSOutlineView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSPasteboard.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSSavePanel.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableView.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbarItem.h - - - - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSView.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSError.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSFileManager.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyValueObserving.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSKeyedArchiver.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObject.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSObjectScripting.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSPortCoder.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSRunLoop.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptClassDescription.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptKeyValueCoding.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptObjectSpecifiers.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSScriptWhoseTests.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSThread.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURL.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLConnection.h - - - - NSObject - - IBFrameworkSource - Foundation.framework/Headers/NSURLDownload.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebDownload.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebEditingDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebFrameLoadDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebJavaPlugIn.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPlugin.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPluginContainer.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebPolicyDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebResourceLoadDelegate.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebScriptObject.h - - - - NSObject - - IBFrameworkSource - WebKit.framework/Headers/WebUIDelegate.h - - - - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSInterfaceStyle.h - - - - NSResponder - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSResponder.h - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSClipView.h - - - - NSView - - - - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSRulerView.h - - - - NSView - NSResponder - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSDrawer.h - - - - NSWindow - NSResponder - - IBFrameworkSource - AppKit.framework/Headers/NSWindow.h - - - - NSWindow - - IBFrameworkSource - AppKit.framework/Headers/NSWindowScripting.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - ../OpenRA.xcodeproj - 3 - - YES - - YES - NSMenuCheckmark - NSMenuMixedState - - - YES - {9, 8} - {7, 2} - - - - diff --git a/OpenRA.Launcher.Mac/OpenRA-Info.plist b/OpenRA.Launcher.Mac/OpenRA-Info.plist deleted file mode 100644 index fa1cb03573..0000000000 --- a/OpenRA.Launcher.Mac/OpenRA-Info.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - OpenRA - CFBundleIconFile - OpenRA.icns - CFBundleName - OpenRA - CFBundleDisplayName - OpenRA - CFBundleIdentifier - org.open-ra.launcher - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj b/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj deleted file mode 100644 index 10fe86041d..0000000000 --- a/OpenRA.Launcher.Mac/OpenRA.xcodeproj/project.pbxproj +++ /dev/null @@ -1,313 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 45; - objects = { - -/* Begin PBXBuildFile section */ - 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - DA81FA821290F5C800C48F2F /* Controller.m in Sources */ = {isa = PBXBuildFile; fileRef = DA81FA811290F5C800C48F2F /* Controller.m */; }; - DA81FBDC12910E4900C48F2F /* OpenRA.icns in Resources */ = {isa = PBXBuildFile; fileRef = DA81FBDB12910E4900C48F2F /* OpenRA.icns */; }; - DAB887F5129E5D6C00C99407 /* SDL in Resources */ = {isa = PBXBuildFile; fileRef = DAB887EE129E5D6100C99407 /* SDL */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; - 256AC3F00F4B6AF500CF3369 /* OpenRA_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenRA_Prefix.pch; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* OpenRA-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "OpenRA-Info.plist"; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* OpenRA.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenRA.app; sourceTree = BUILT_PRODUCTS_DIR; }; - DA81FA801290F5C800C48F2F /* Controller.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Controller.h; sourceTree = ""; }; - DA81FA811290F5C800C48F2F /* Controller.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Controller.m; sourceTree = ""; }; - DA81FBDB12910E4900C48F2F /* OpenRA.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = OpenRA.icns; sourceTree = ""; }; - DA9295A612921DF900EDB02E /* WebKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; - DAB887EE129E5D6100C99407 /* SDL */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = SDL; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* Classes */ = { - isa = PBXGroup; - children = ( - DA81FA801290F5C800C48F2F /* Controller.h */, - DA81FA811290F5C800C48F2F /* Controller.m */, - ); - name = Classes; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - DA9295A612921DF900EDB02E /* WebKit.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* OpenRA.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* OpenRA */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* Classes */, - 29B97315FDCFA39411CA2CEA /* Other Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = OpenRA; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Other Sources */ = { - isa = PBXGroup; - children = ( - 256AC3F00F4B6AF500CF3369 /* OpenRA_Prefix.pch */, - 29B97316FDCFA39411CA2CEA /* main.m */, - ); - name = "Other Sources"; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - DAB887EE129E5D6100C99407 /* SDL */, - DA81FBDB12910E4900C48F2F /* OpenRA.icns */, - 8D1107310486CEB800E47090 /* OpenRA-Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* OpenRA */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "OpenRA" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = OpenRA; - productInstallPath = "$(HOME)/Applications"; - productName = OpenRA; - productReference = 8D1107320486CEB800E47090 /* OpenRA.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - ORGANIZATIONNAME = OpenRA; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "OpenRA" */; - compatibilityVersion = "Xcode 3.1"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* OpenRA */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* OpenRA */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - DAB887F5129E5D6C00C99407 /* SDL in Resources */, - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, - DA81FBDC12910E4900C48F2F /* OpenRA.icns in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, - DA81FA821290F5C800C48F2F /* Controller.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - 1DDD58150DA1D0A300B32029 /* English */, - ); - name = MainMenu.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4B08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - COPY_PHASE_STRIP = NO; - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = OpenRA_Prefix.pch; - INFOPLIST_FILE = "OpenRA-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.5; - PRODUCT_NAME = OpenRA; - SDKROOT = macosx10.6; - }; - name = Debug; - }; - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - GCC_MODEL_TUNING = G5; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = OpenRA_Prefix.pch; - INFOPLIST_FILE = "OpenRA-Info.plist"; - INSTALL_PATH = "$(HOME)/Applications"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)\"", - ); - MACOSX_DEPLOYMENT_TARGET = 10.5; - PRODUCT_NAME = OpenRA; - SDKROOT = macosx10.6; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = YES; - PREBINDING = NO; - SDKROOT = macosx10.5; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - ONLY_ACTIVE_ARCH = NO; - PREBINDING = NO; - SDKROOT = macosx10.5; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "OpenRA" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4B08A954540054247B /* Debug */, - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "OpenRA" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/OpenRA.Launcher.Mac/OpenRA_Prefix.pch b/OpenRA.Launcher.Mac/OpenRA_Prefix.pch deleted file mode 100644 index 125a669ad6..0000000000 --- a/OpenRA.Launcher.Mac/OpenRA_Prefix.pch +++ /dev/null @@ -1,7 +0,0 @@ -// -// Prefix header for all source files of the 'OpenRA' target in the 'OpenRA' project -// - -#ifdef __OBJC__ - #import -#endif diff --git a/OpenRA.Launcher.Mac/README b/OpenRA.Launcher.Mac/README deleted file mode 100644 index 6262948af0..0000000000 --- a/OpenRA.Launcher.Mac/README +++ /dev/null @@ -1,5 +0,0 @@ -** Make sure you set your XCode build configuration to 32-bit. - -32-bit mono will not work consistently when exec'd from a 64-bit program. - - diff --git a/OpenRA.Launcher.Mac/SDL b/OpenRA.Launcher.Mac/SDL deleted file mode 100755 index 2ccf7d95db..0000000000 Binary files a/OpenRA.Launcher.Mac/SDL and /dev/null differ diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA deleted file mode 100755 index 56d2aedbe7..0000000000 Binary files a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/MacOS/OpenRA and /dev/null differ diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/InfoPlist.strings b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/InfoPlist.strings deleted file mode 100644 index dea12de4ca..0000000000 Binary files a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib deleted file mode 100644 index 931c5c3ab7..0000000000 Binary files a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/English.lproj/MainMenu.nib and /dev/null differ diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/OpenRA.icns b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/OpenRA.icns deleted file mode 100755 index c5b938fbc0..0000000000 Binary files a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/OpenRA.icns and /dev/null differ diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/SDL b/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/SDL deleted file mode 100755 index 89db482e30..0000000000 Binary files a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Resources/SDL and /dev/null differ diff --git a/OpenRA.Launcher.Mac/main.m b/OpenRA.Launcher.Mac/main.m deleted file mode 100644 index f5d8b20faf..0000000000 --- a/OpenRA.Launcher.Mac/main.m +++ /dev/null @@ -1,57 +0,0 @@ -// -// main.m -// OpenRA -// -// Created by Paul Chote on 15/11/10. -// Copyright 2010 __MyCompanyName__. All rights reserved. -// - -#import - -extern char **environ; -int main(int argc, char *argv[]) -{ - /* When launching a mod, the arguments are of the form - * --launch */ - if (argc > 1 && strcmp(argv[1], "--launch") == 0) - { - if (argc < 5) - exit(1); - - /* Change into the game dir */ - chdir(argv[3]); - - /* Command line args for mono */ - char *args[] = { - argv[4], - "--debug", - "OpenRA.Game.exe", - NULL - }; - - /* add game dir to DYLD_LIBRARY_PATH */ - char *old = getenv("DYLD_LIBRARY_PATH"); - if (old == NULL) - setenv("DYLD_LIBRARY_PATH", argv[3], 1); - else - { - char buf[512]; - int len = strlen(argv[3]) + strlen(old) + 2; - if (len > 512) - { - NSLog(@"Insufficient DYLD_LIBRARY_PATH buffer length. Wanted %d, had 512", len); - exit(1); - } - sprintf(buf,"%s:%s",argv[3], old); - setenv("DYLD_LIBRARY_PATH", buf, 1); - } - - if (strcmp(argv[2], "--hide-menubar") == 0) - [NSMenu setMenuBarVisible:NO]; - - /* Exec mono */ - execve(args[0], args, environ); - } - else /* Else, start the launcher */ - return NSApplicationMain(argc, (const char **) argv); -} diff --git a/packaging/osx/buildpackage.sh b/packaging/osx/buildpackage.sh index 7394a2ac56..ded6a6f695 100755 --- a/packaging/osx/buildpackage.sh +++ b/packaging/osx/buildpackage.sh @@ -14,16 +14,22 @@ fi # Copy the template to build the game package # Assumes it is layed out with the correct directory structure -cp -rv ../../OpenRA.Launcher.Mac/build/Release/OpenRA.app OpenRA.app +cp -rv template.app OpenRA.app cp -rv $2/* "OpenRA.app/Contents/Resources/" || exit 3 # Icon isn't used, and editor doesn't work. rm OpenRA.app/Contents/Resources/OpenRA.ico rm OpenRA.app/Contents/Resources/OpenRA.Editor.exe +# SDL2 is the only supported renderer +rm -rf OpenRA.app/Contents/Resources/cg +rm OpenRA.app/Contents/Resources/OpenRA.Renderer.Cg.dll +rm OpenRA.app/Contents/Resources/Tao.Sdl.* +rm OpenRA.app/Contents/Resources/Tao.Cg.* + # Change the .config to use the packaged SDL -sed "s/\/Library\/Frameworks\/SDL.framework/./" OpenRA.app/Contents/Resources/Tao.Sdl.dll.config > temp -mv temp OpenRA.app/Contents/Resources/Tao.Sdl.dll.config +sed "s/\/Library\/Frameworks\/SDL2.framework/./" OpenRA.app/Contents/Resources/SDL2\#.dll.config > temp +mv temp OpenRA.app/Contents/Resources/SDL2\#.dll.config rm temp # Package app bundle into a zip and clean up diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Info.plist b/packaging/osx/template.app/Contents/Info.plist similarity index 100% rename from OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/Info.plist rename to packaging/osx/template.app/Contents/Info.plist diff --git a/packaging/osx/template.app/Contents/MacOS/OpenRA b/packaging/osx/template.app/Contents/MacOS/OpenRA new file mode 100755 index 0000000000..6cb768b0c5 --- /dev/null +++ b/packaging/osx/template.app/Contents/MacOS/OpenRA @@ -0,0 +1,33 @@ +#!/bin/bash +# OpenRA OSX launcher script +# Checks for a sufficiently recent mono version, then launches the game from the resources directory. +# Based on code from the monodevelop project + +REQUIRED_MAJOR=2 +REQUIRED_MINOR=10 + +TITLE="Cannot launch OpenRA" +MESSAGE="OpenRA requires the Mono Framework version $REQUIRED_MAJOR.$REQUIRED_MINOR or later." +MONO_URL="http://www.go-mono.com/mono-downloads/download.html" + +DIR=$(cd "$(dirname "$0")"; pwd) +RESOURCES="$DIR/../Resources" + +MONO_VERSION="$(mono --version | grep 'Mono JIT compiler version ' | cut -f5 -d\ )" +MONO_VERSION_MAJOR="$(echo $MONO_VERSION | cut -f1 -d.)" +MONO_VERSION_MINOR="$(echo $MONO_VERSION | cut -f2 -d.)" + +if [ -z "$MONO_VERSION" ] \ + || [ $MONO_VERSION_MAJOR -lt $REQUIRED_MAJOR ] \ + || [ $MONO_VERSION_MAJOR -eq $REQUIRED_MAJOR -a $MONO_VERSION_MINOR -lt $REQUIRED_MINOR ] +then + osascript \ + -e "tell application \"Finder\"" \ + -e " set question to display dialog \"$MESSAGE\" with title \"$TITLE\" with icon alias (POSIX file \"$RESOURCES/OpenRA.icns\") buttons {\"Cancel\", \"Download...\"} default button 2" \ + -e " if button returned of question is equal to \"Download...\" then open location \"$MONO_URL\"" \ + -e " activate" \ + -e "end tell" + exit 1 +fi + +cd "$RESOURCES" && mono --debug OpenRA.Game.exe Graphics.Renderer=Sdl2 \ No newline at end of file diff --git a/OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/PkgInfo b/packaging/osx/template.app/Contents/PkgInfo similarity index 100% rename from OpenRA.Launcher.Mac/build/Release/OpenRA.app/Contents/PkgInfo rename to packaging/osx/template.app/Contents/PkgInfo diff --git a/OpenRA.Launcher.Mac/OpenRA.icns b/packaging/osx/template.app/Contents/Resources/OpenRA.icns similarity index 100% rename from OpenRA.Launcher.Mac/OpenRA.icns rename to packaging/osx/template.app/Contents/Resources/OpenRA.icns diff --git a/packaging/osx/template.app/Contents/Resources/SDL2 b/packaging/osx/template.app/Contents/Resources/SDL2 new file mode 100755 index 0000000000..ec107755d0 Binary files /dev/null and b/packaging/osx/template.app/Contents/Resources/SDL2 differ diff --git a/packaging/package-all.sh b/packaging/package-all.sh index eb34308b2e..a115b5546c 100755 --- a/packaging/package-all.sh +++ b/packaging/package-all.sh @@ -29,7 +29,7 @@ markdown DOCUMENTATION.md > DOCUMENTATION.html # Note that the Tao dlls are shipped on all platforms except osx and that # they are now installed to the game directory instead of placed in the gac FILES=('OpenRA.Game.exe' 'OpenRA.Editor.exe' 'OpenRA.Utility.exe' \ -'OpenRA.FileFormats.dll' 'OpenRA.Renderer.SdlCommon.dll' 'OpenRA.Renderer.Cg.dll' 'OpenRA.Renderer.Gl.dll' 'OpenRA.Renderer.Null.dll' 'OpenRA.Irc.dll' \ +'OpenRA.FileFormats.dll' 'OpenRA.Renderer.SdlCommon.dll' 'OpenRA.Renderer.Sdl2.dll' 'OpenRA.Renderer.Cg.dll' 'OpenRA.Renderer.Gl.dll' 'OpenRA.Renderer.Null.dll' 'OpenRA.Irc.dll' \ 'FreeSans.ttf' 'FreeSansBold.ttf' \ 'cg' 'glsl' 'mods/ra' 'mods/cnc' 'mods/d2k' \ 'AUTHORS' 'CHANGELOG' 'COPYING' \ @@ -53,6 +53,9 @@ cp thirdparty/FuzzyLogicLibrary.dll packaging/built # SharpFont for FreeType support cp thirdparty/SharpFont* packaging/built +# SDL2# +cp thirdparty/SDL2\#* packaging/built + # Mono.NAT for UPnP support cp thirdparty/Mono.Nat.dll packaging/built