diff --git a/CMakeLists.txt b/CMakeLists.txt index c36465e86..7126f67ba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -621,6 +621,7 @@ list(APPEND MAPE_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/mape-icons.h) # source files specific to an operating system if(APPLE) list(APPEND OC_SYSTEM_SOURCES + src/platform/C4AppMac.mm src/platform/C4FileMonitorMac.mm src/platform/C4AppDelegate.h src/platform/C4AppDelegate.mm @@ -718,7 +719,6 @@ elseif(WIN32) elseif(USE_COCOA) list(APPEND OC_GUI_SOURCES src/editor/C4ConsoleCocoa.mm - src/platform/C4AppMac.mm src/platform/C4WindowMac.mm src/platform/C4AppDelegate+MainMenuActions.h src/platform/C4AppDelegate+MainMenuActions.mm @@ -1330,6 +1330,7 @@ if(USE_X11) endif() if(USE_COCOA) TARGET_LINK_LIBRARIES(openclonk "-framework Cocoa -framework AppKit -framework Quartz -framework OpenAL -framework AudioToolbox") + TARGET_LINK_LIBRARIES(openclonk-server "-framework Cocoa") endif() if (WIN32) # CMake is too incompetent to check whether these libraries can be linked to diff --git a/src/platform/C4App.h b/src/platform/C4App.h index 9c1fe92bf..318f3506e 100644 --- a/src/platform/C4App.h +++ b/src/platform/C4App.h @@ -156,15 +156,16 @@ protected: public: void HandleSDLEvent(SDL_Event& event); -#elif defined(USE_COCOA) -public: - StdStrBuf GetGameDataPath(); - #elif defined(USE_CONSOLE) protected: C4StdInProc InProc; #endif +#ifdef __APPLE__ +public: + StdStrBuf GetGameDataPath(); +#endif + #ifdef USE_WIN32_WINDOWS private: CStdMessageProc MessageProc; diff --git a/src/platform/C4AppDelegate.h b/src/platform/C4AppDelegate.h index 8405e788b..12dfe41e6 100644 --- a/src/platform/C4AppDelegate.h +++ b/src/platform/C4AppDelegate.h @@ -34,8 +34,10 @@ { NSMutableArray *gatheredArguments; NSString *addonSupplied; +#ifdef USE_COCOA C4EditorWindowController *editorWindowController; C4WindowController *gameWindowController; +#endif BOOL running; std::vector args; } diff --git a/src/platform/C4AppDelegate.mm b/src/platform/C4AppDelegate.mm index 7fbf03f22..36cabe861 100644 --- a/src/platform/C4AppDelegate.mm +++ b/src/platform/C4AppDelegate.mm @@ -283,8 +283,10 @@ - (void) applicationDidBecomeActive:(NSNotification*)notification { +#ifdef USE_COCOA if (gameWindowController) [gameWindowController.window makeKeyAndOrderFront:self]; +#endif } @end diff --git a/src/platform/C4AppMac.mm b/src/platform/C4AppMac.mm index 759d52301..791eac900 100644 --- a/src/platform/C4AppMac.mm +++ b/src/platform/C4AppMac.mm @@ -23,12 +23,13 @@ #include #include +#include "C4App.h" #import + +#ifndef USE_CONSOLE #import "C4WindowController.h" #import "C4DrawGLMac.h" -#include "C4App.h" - bool C4AbstractApp::Copy(const StdStrBuf & text, bool fClipboard) { NSPasteboard* pasteboard = [NSPasteboard generalPasteboard]; @@ -151,11 +152,6 @@ void C4AbstractApp::RestoreVideoMode() { } -StdStrBuf C4AbstractApp::GetGameDataPath() -{ - return StdCopyStrBuf([[[NSBundle mainBundle] resourcePath] fileSystemRepresentation]); -} - bool C4AbstractApp::SetVideoMode(int iXRes, int iYRes, unsigned int iColorDepth, unsigned int iRefreshRate, unsigned int iMonitor, bool fFullScreen) { fFullScreen &= !lionAndBeyond(); // Always false for Lion since then Lion's true(tm) Fullscreen is used @@ -190,7 +186,8 @@ bool C4AbstractApp::SetVideoMode(int iXRes, int iYRes, unsigned int iColorDepth, return true; } -#endif +#endif // USE_COCOA +#endif // USE_CONSOLE bool IsGermanSystem() { @@ -215,3 +212,8 @@ bool EraseItemSafe(const char* szFilename) files: [NSArray arrayWithObject: [filename lastPathComponent]] tag: 0]; } + +StdStrBuf C4AbstractApp::GetGameDataPath() +{ + return StdCopyStrBuf([[[NSBundle mainBundle] resourcePath] fileSystemRepresentation]); +} diff --git a/src/platform/StdSchedulerMac.mm b/src/platform/StdSchedulerMac.mm index 97295acbc..3cd3e4d29 100644 --- a/src/platform/StdSchedulerMac.mm +++ b/src/platform/StdSchedulerMac.mm @@ -15,7 +15,6 @@ #include #include -#ifdef USE_COCOA #import using namespace std; @@ -296,4 +295,3 @@ void StdScheduler::Changed(StdSchedulerProc* pProc) { [[[SCHAdditions requestAdditionsForScheduler:this] additionForProc:pProc] changed]; } -#endif