mirror of
https://github.com/godotengine/godot.git
synced 2024-11-27 09:16:35 +08:00
Server platform works on OS X too
This commit is contained in:
parent
7a42df3626
commit
fe93bb03fe
@ -349,6 +349,9 @@ if selected_platform in platform_list:
|
||||
else: # always enable those errors
|
||||
env.Append(CCFLAGS=['-Werror=return-type'])
|
||||
|
||||
if (hasattr(detect, 'get_program_suffix')):
|
||||
suffix = "." + detect.get_program_suffix()
|
||||
else:
|
||||
suffix = "." + selected_platform
|
||||
|
||||
if (env["target"] == "release"):
|
||||
|
@ -55,7 +55,7 @@
|
||||
|
||||
#include <netinet/tcp.h>
|
||||
|
||||
#if defined(OSX_ENABLED) || defined(IPHONE_ENABLED)
|
||||
#if defined(__APPLE__)
|
||||
#define MSG_NOSIGNAL SO_NOSIGPIPE
|
||||
#endif
|
||||
|
||||
|
@ -74,8 +74,12 @@ public:
|
||||
|
||||
IP_Unix *ip_unix;
|
||||
|
||||
#ifdef COREAUDIO_ENABLED
|
||||
AudioDriverCoreAudio audio_driver;
|
||||
#endif
|
||||
#ifdef COREMIDI_ENABLED
|
||||
MIDIDriverCoreMidi midi_driver;
|
||||
#endif
|
||||
|
||||
InputDefault *input;
|
||||
JoypadOSX *joypad_osx;
|
||||
|
@ -1408,7 +1408,9 @@ Error OS_OSX::initialize(const VideoMode &p_desired, int p_video_driver, int p_a
|
||||
|
||||
void OS_OSX::finalize() {
|
||||
|
||||
#ifdef COREMIDI_ENABLED
|
||||
midi_driver.close();
|
||||
#endif
|
||||
|
||||
CFNotificationCenterRemoveObserver(CFNotificationCenterGetDistributedCenter(), NULL, kTISNotifySelectedKeyboardInputSourceChanged, NULL);
|
||||
CGDisplayRemoveReconfigurationCallback(displays_arrangement_changed, NULL);
|
||||
@ -2725,7 +2727,9 @@ OS_OSX::OS_OSX() {
|
||||
[NSApp sendEvent:event];
|
||||
}
|
||||
|
||||
#ifdef COREAUDIO_ENABLED
|
||||
AudioDriverManager::add_driver(&audio_driver);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool OS_OSX::_check_internal_feature_support(const String &p_feature) {
|
||||
|
@ -1,10 +1,21 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
import platform
|
||||
import sys
|
||||
|
||||
Import('env')
|
||||
|
||||
common_server = [\
|
||||
"os_server.cpp",\
|
||||
"#platform/x11/crash_handler_x11.cpp",
|
||||
"#platform/x11/power_x11.cpp",
|
||||
]
|
||||
|
||||
if sys.platform == "darwin":
|
||||
common_server.append("#platform/osx/crash_handler_osx.mm")
|
||||
common_server.append("#platform/osx/power_osx.cpp")
|
||||
common_server.append("#platform/osx/sem_osx.cpp")
|
||||
else:
|
||||
common_server.append("#platform/x11/crash_handler_x11.cpp")
|
||||
common_server.append("#platform/x11/power_x11.cpp")
|
||||
|
||||
prog = env.add_program('#bin/godot_server', ['godot_server.cpp'] + common_server)
|
||||
|
@ -11,9 +11,15 @@ def get_name():
|
||||
return "Server"
|
||||
|
||||
|
||||
def get_program_suffix():
|
||||
if (sys.platform == "darwin"):
|
||||
return "osx"
|
||||
return "x11"
|
||||
|
||||
|
||||
def can_build():
|
||||
|
||||
if (os.name != "posix" or sys.platform == "darwin"):
|
||||
if (os.name != "posix" or sys.platform != "darwin"):
|
||||
return False
|
||||
|
||||
return True
|
||||
@ -147,6 +153,10 @@ def configure(env):
|
||||
|
||||
env.Append(CPPPATH=['#platform/server'])
|
||||
env.Append(CPPFLAGS=['-DSERVER_ENABLED', '-DUNIX_ENABLED'])
|
||||
|
||||
if (platform.system() == "Darwin"):
|
||||
env.Append(LINKFLAGS=['-framework', 'Cocoa', '-framework', 'Carbon', '-lz', '-framework', 'IOKit'])
|
||||
|
||||
env.Append(LIBS=['pthread'])
|
||||
|
||||
if (platform.system() == "Linux"):
|
||||
|
@ -68,6 +68,10 @@ void OS_Server::initialize_core() {
|
||||
crash_handler.initialize();
|
||||
|
||||
OS_Unix::initialize_core();
|
||||
|
||||
#ifdef __APPLE__
|
||||
SemaphoreOSX::make_default();
|
||||
#endif
|
||||
}
|
||||
|
||||
Error OS_Server::initialize(const VideoMode &p_desired, int p_video_driver, int p_audio_driver) {
|
||||
@ -87,7 +91,11 @@ Error OS_Server::initialize(const VideoMode &p_desired, int p_video_driver, int
|
||||
|
||||
input = memnew(InputDefault);
|
||||
|
||||
#ifdef __APPLE__
|
||||
power_manager = memnew(power_osx);
|
||||
#else
|
||||
power_manager = memnew(PowerX11);
|
||||
#endif
|
||||
|
||||
_ensure_user_data_dir();
|
||||
|
||||
|
@ -34,8 +34,14 @@
|
||||
#include "drivers/rtaudio/audio_driver_rtaudio.h"
|
||||
#include "drivers/unix/os_unix.h"
|
||||
#include "main/input_default.h"
|
||||
#ifdef __APPLE__
|
||||
#include "platform/osx/crash_handler_osx.h"
|
||||
#include "platform/osx/power_osx.h"
|
||||
#include "platform/osx/sem_osx.h"
|
||||
#else
|
||||
#include "platform/x11/crash_handler_x11.h"
|
||||
#include "platform/x11/power_x11.h"
|
||||
#endif
|
||||
#include "servers/audio_server.h"
|
||||
#include "servers/visual/rasterizer.h"
|
||||
#include "servers/visual_server.h"
|
||||
@ -61,7 +67,11 @@ class OS_Server : public OS_Unix {
|
||||
|
||||
InputDefault *input;
|
||||
|
||||
#ifdef __APPLE__
|
||||
power_osx *power_manager;
|
||||
#else
|
||||
PowerX11 *power_manager;
|
||||
#endif
|
||||
|
||||
CrashHandler crash_handler;
|
||||
|
||||
|
@ -28,10 +28,13 @@
|
||||
/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
|
||||
/*************************************************************************/
|
||||
|
||||
#ifdef __linux__
|
||||
#if defined(__linux__) || defined(__APPLE__)
|
||||
#include <alloca.h>
|
||||
#endif
|
||||
#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
#include <stdlib.h>
|
||||
#define PTHREAD_BSD_SET_NAME
|
||||
#endif
|
||||
#ifdef __APPLE__
|
||||
#define PTHREAD_RENAME_SELF
|
||||
#endif
|
||||
|
2
thirdparty/libwebsockets/lws_config.h
vendored
2
thirdparty/libwebsockets/lws_config.h
vendored
@ -174,7 +174,7 @@
|
||||
#define LWS_HAVE_MALLOC_H
|
||||
#endif
|
||||
|
||||
#if !defined(IPHONE_ENABLED) && !defined(OSX_ENABLED) && !defined(__HAIKU__)
|
||||
#if !defined(__APPLE__) && !defined(__HAIKU__)
|
||||
#define LWS_HAVE_PIPE2
|
||||
#endif
|
||||
|
||||
|
@ -81,7 +81,7 @@
|
||||
|
||||
/* Define to 1 if you have the <sys/prctl.h> header file. */
|
||||
#define LWS_HAVE_SYS_PRCTL_H
|
||||
#if defined(OSX_ENABLED) || defined(IPHONE_ENABLED) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__HAIKU__)
|
||||
#if defined(__APPLE__) || defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__HAIKU__)
|
||||
#undef LWS_HAVE_SYS_PRCTL_H
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user