Add proper stubs for OS_JavaScript::execute(), get_process_id(), kill()

Avoids linker warnings and errors about undefined references.
This commit is contained in:
Leon Krause 2018-10-29 21:15:15 +01:00
parent 0a80ceaf02
commit 5c2c47a174
3 changed files with 28 additions and 0 deletions

View File

@ -288,6 +288,11 @@ uint64_t OS_Unix::get_ticks_usec() const {
Error OS_Unix::execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id, String *r_pipe, int *r_exitcode, bool read_stderr) { Error OS_Unix::execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id, String *r_pipe, int *r_exitcode, bool read_stderr) {
#ifdef __EMSCRIPTEN__
// Don't compile this code at all to avoid undefined references.
// Actual virtual call goes to OS_JavaScript.
ERR_FAIL_V(ERR_BUG);
#else
if (p_blocking && r_pipe) { if (p_blocking && r_pipe) {
String argss; String argss;
@ -354,6 +359,7 @@ Error OS_Unix::execute(const String &p_path, const List<String> &p_arguments, bo
} }
return OK; return OK;
#endif
} }
Error OS_Unix::kill(const ProcessID &p_pid) { Error OS_Unix::kill(const ProcessID &p_pid) {

View File

@ -862,6 +862,24 @@ void OS_JavaScript::finalize() {
// Miscellaneous // Miscellaneous
Error OS_JavaScript::execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id, String *r_pipe, int *r_exitcode, bool read_stderr) {
ERR_EXPLAIN("OS::execute() is not available on the HTML5 platform");
ERR_FAIL_V(ERR_UNAVAILABLE);
}
Error OS_JavaScript::kill(const ProcessID &p_pid) {
ERR_EXPLAIN("OS::kill() is not available on the HTML5 platform");
ERR_FAIL_V(ERR_UNAVAILABLE);
}
int OS_JavaScript::get_process_id() const {
ERR_EXPLAIN("OS::get_process_id() is not available on the HTML5 platform");
ERR_FAIL_V(0);
}
extern "C" EMSCRIPTEN_KEEPALIVE void send_notification(int p_notification) { extern "C" EMSCRIPTEN_KEEPALIVE void send_notification(int p_notification) {
if (p_notification == MainLoop::NOTIFICATION_WM_MOUSE_ENTER || p_notification == MainLoop::NOTIFICATION_WM_MOUSE_EXIT) { if (p_notification == MainLoop::NOTIFICATION_WM_MOUSE_ENTER || p_notification == MainLoop::NOTIFICATION_WM_MOUSE_EXIT) {

View File

@ -133,6 +133,10 @@ public:
void run_async(); void run_async();
bool main_loop_iterate(); bool main_loop_iterate();
virtual Error execute(const String &p_path, const List<String> &p_arguments, bool p_blocking, ProcessID *r_child_id = NULL, String *r_pipe = NULL, int *r_exitcode = NULL, bool read_stderr = false);
virtual Error kill(const ProcessID &p_pid);
virtual int get_process_id() const;
virtual void alert(const String &p_alert, const String &p_title = "ALERT!"); virtual void alert(const String &p_alert, const String &p_title = "ALERT!");
virtual void set_window_title(const String &p_title); virtual void set_window_title(const String &p_title);
virtual void set_icon(const Ref<Image> &p_icon); virtual void set_icon(const Ref<Image> &p_icon);