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