diff options
Diffstat (limited to 'platform')
-rw-r--r-- | platform/android/detect.py | 42 | ||||
-rw-r--r-- | platform/android/export/export.cpp | 27 | ||||
-rw-r--r-- | platform/bb10/export/export.cpp | 8 | ||||
-rw-r--r-- | platform/javascript/export/export.cpp | 8 | ||||
-rw-r--r-- | platform/osx/export/export.cpp | 8 | ||||
-rw-r--r-- | platform/windows/os_windows.cpp | 6 | ||||
-rw-r--r-- | platform/windows/os_windows.h | 3 |
7 files changed, 77 insertions, 25 deletions
diff --git a/platform/android/detect.py b/platform/android/detect.py index 5ef405f7b6..76575a1ec6 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -54,13 +54,53 @@ def create(env): def configure(env): + # Workaround for MinGW. See: + # http://www.scons.org/wiki/LongCmdLinesOnWin32 + import os + if (os.name=="nt"): + + import subprocess + + def mySubProcess(cmdline,env): + #print "SPAWNED : " + cmdline + startupinfo = subprocess.STARTUPINFO() + startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW + proc = subprocess.Popen(cmdline, stdin=subprocess.PIPE, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, startupinfo=startupinfo, shell = False, env = env) + data, err = proc.communicate() + rv = proc.wait() + if rv: + print "=====" + print err + print "=====" + return rv + + def mySpawn(sh, escape, cmd, args, env): + + newargs = ' '.join(args[1:]) + cmdline = cmd + " " + newargs + + rv=0 + if len(cmdline) > 32000 and cmd.endswith("ar") : + cmdline = cmd + " " + args[1] + " " + args[2] + " " + for i in range(3,len(args)) : + rv = mySubProcess( cmdline + args[i], env ) + if rv : + break + else: + rv = mySubProcess( cmdline, env ) + + return rv + + env['SPAWN'] = mySpawn + if env['x86']=='yes': env['NDK_TARGET']='x86-4.8' if env['PLATFORM'] == 'win32': import methods env.Tool('gcc') - env['SPAWN'] = methods.win32_spawn + #env['SPAWN'] = methods.win32_spawn env['SHLIBSUFFIX'] = '.so' # env.android_source_modules.append("../libs/apk_expansion") diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 0f9ce8081f..982ef9d1cb 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -228,7 +228,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { String get_package_name(); String get_project_name() const; - void _fix_manifest(Vector<uint8_t>& p_manifest); + void _fix_manifest(Vector<uint8_t>& p_manifest, bool p_give_internet); void _fix_resources(Vector<uint8_t>& p_manifest); static Error save_apk_file(void *p_userdata,const String& p_path, const Vector<uint8_t>& p_data,int p_file,int p_total); @@ -249,11 +249,11 @@ public: virtual int get_device_count() const; virtual String get_device_name(int p_device) const; virtual String get_device_info(int p_device) const; - virtual Error run(int p_device,bool p_dumb=false); + virtual Error run(int p_device,bool p_dumb=false,bool p_remote_debug=false); virtual bool requieres_password(bool p_debug) const { return !p_debug; } virtual String get_binary_extension() const { return "apk"; } - virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false); + virtual Error export_project(const String& p_path, bool p_debug, bool p_dumb=false, bool p_remote_debug=false); virtual bool can_export(String *r_error=NULL) const; @@ -608,7 +608,7 @@ String EditorExportPlatformAndroid::get_project_name() const { } -void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) { +void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest,bool p_give_internet) { const int CHUNK_AXML_FILE = 0x00080003; @@ -838,7 +838,10 @@ void EditorExportPlatformAndroid::_fix_manifest(Vector<uint8_t>& p_manifest) { } else if (value.begins_with("godot.")) { String perm = value.get_slice(".",1); - if (perms.has(perm)) { + print_line("PERM: "+perm+" HAS: "+itos(perms.has(perm))); + + if (perms.has(perm) || (p_give_internet && perm=="INTERNET")) { + string_table[attr_value]="android.permission."+perm; } @@ -1011,7 +1014,7 @@ Error EditorExportPlatformAndroid::save_apk_file(void *p_userdata,const String& -Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_debug, bool p_dumb) { +Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_debug, bool p_dumb,bool p_remote_debug) { String src_apk; @@ -1075,7 +1078,7 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d if (file=="AndroidManifest.xml") { - _fix_manifest(data); + _fix_manifest(data,p_dumb || p_remote_debug); } if (file=="resources.arsc") { @@ -1153,9 +1156,11 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d } } + gen_export_flags(cl,p_dumb,p_remote_debug); + if (p_dumb) { - String host = EditorSettings::get_singleton()->get("file_server/host"); + /*String host = EditorSettings::get_singleton()->get("file_server/host"); int port = EditorSettings::get_singleton()->get("file_server/post"); String passwd = EditorSettings::get_singleton()->get("file_server/password"); cl.push_back("-rfs"); @@ -1163,7 +1168,7 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d if (passwd!="") { cl.push_back("-rfs_pass"); cl.push_back(passwd); - } + }*/ } else { @@ -1480,7 +1485,7 @@ void EditorExportPlatformAndroid::_device_poll_thread(void *ud) { } -Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) { +Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb, bool p_remote_debug) { ERR_FAIL_INDEX_V(p_device,devices.size(),ERR_INVALID_PARAMETER); device_lock->lock(); @@ -1499,7 +1504,7 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) { ep.step("Exporting APK",0); String export_to=EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmpexport.apk"; - Error err = export_project(export_to,true,p_dumb); + Error err = export_project(export_to,true,p_dumb,p_remote_debug); if (err) { device_lock->unlock(); return err; diff --git a/platform/bb10/export/export.cpp b/platform/bb10/export/export.cpp index a807e184ce..44fef621c7 100644 --- a/platform/bb10/export/export.cpp +++ b/platform/bb10/export/export.cpp @@ -67,11 +67,11 @@ public: virtual int get_device_count() const; virtual String get_device_name(int p_device) const; virtual String get_device_info(int p_device) const; - virtual Error run(int p_device,bool p_dumb=false); + virtual Error run(int p_device,bool p_dumb=false,bool p_remote_debug=false); virtual bool requieres_password(bool p_debug) const { return !p_debug; } virtual String get_binary_extension() const { return "bar"; } - virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false); + virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false,bool p_remote_debug=false); virtual bool can_export(String *r_error=NULL) const; @@ -270,7 +270,7 @@ void EditorExportPlatformBB10::_fix_descriptor(Vector<uint8_t>& p_descriptor) { -Error EditorExportPlatformBB10::export_project(const String& p_path, bool p_debug, bool p_dumb) { +Error EditorExportPlatformBB10::export_project(const String& p_path, bool p_debug, bool p_dumb, bool p_remote_debug) { EditorProgress ep("export","Exporting for BlackBerry 10",104); @@ -619,7 +619,7 @@ void EditorExportPlatformBB10::_device_poll_thread(void *ud) { } -Error EditorExportPlatformBB10::run(int p_device, bool p_dumb) { +Error EditorExportPlatformBB10::run(int p_device, bool p_dumb, bool p_remote_debug) { ERR_FAIL_INDEX_V(p_device,devices.size(),ERR_INVALID_PARAMETER); diff --git a/platform/javascript/export/export.cpp b/platform/javascript/export/export.cpp index 55b1ccbcaa..b262684a59 100644 --- a/platform/javascript/export/export.cpp +++ b/platform/javascript/export/export.cpp @@ -77,11 +77,11 @@ public: virtual int get_device_count() const { return show_run?1:0; }; virtual String get_device_name(int p_device) const { return "Run in Browser"; } virtual String get_device_info(int p_device) const { return "Run exported HTML in the system's default browser."; } - virtual Error run(int p_device,bool p_dumb=false); + virtual Error run(int p_device,bool p_dumb=false,bool p_remote_debug=false); virtual bool requieres_password(bool p_debug) const { return false; } virtual String get_binary_extension() const { return "html"; } - virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false); + virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false,bool p_remote_debug=false); virtual bool can_export(String *r_error=NULL) const; @@ -194,7 +194,7 @@ struct JSExportData { -Error EditorExportPlatformJavaScript::export_project(const String& p_path, bool p_debug, bool p_dumb) { +Error EditorExportPlatformJavaScript::export_project(const String& p_path, bool p_debug, bool p_dumb, bool p_remote_debug) { String src_template; @@ -299,7 +299,7 @@ Error EditorExportPlatformJavaScript::export_project(const String& p_path, bool } -Error EditorExportPlatformJavaScript::run(int p_device, bool p_dumb) { +Error EditorExportPlatformJavaScript::run(int p_device, bool p_dumb, bool p_remote_debug) { String path = EditorSettings::get_singleton()->get_settings_path()+"/tmp/tmp_export.html"; Error err = export_project(path,true,""); diff --git a/platform/osx/export/export.cpp b/platform/osx/export/export.cpp index 885f234a0a..823bc46d74 100644 --- a/platform/osx/export/export.cpp +++ b/platform/osx/export/export.cpp @@ -57,11 +57,11 @@ public: virtual int get_device_count() const { return 0; }; virtual String get_device_name(int p_device) const { return String(); } virtual String get_device_info(int p_device) const { return String(); } - virtual Error run(int p_device,bool p_dumb=false); + virtual Error run(int p_device,bool p_dumb=false,bool p_remote_debug=false); virtual bool requieres_password(bool p_debug) const { return false; } virtual String get_binary_extension() const { return "zip"; } - virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false); + virtual Error export_project(const String& p_path,bool p_debug,bool p_dumb=false,bool p_remote_debug=false); virtual bool can_export(String *r_error=NULL) const; @@ -245,7 +245,7 @@ void EditorExportPlatformOSX::_fix_plist(Vector<uint8_t>& plist,const String& p_ } } -Error EditorExportPlatformOSX::export_project(const String& p_path, bool p_debug, bool p_dumb) { +Error EditorExportPlatformOSX::export_project(const String& p_path, bool p_debug, bool p_dumb, bool p_remote_debug) { String src_pkg; @@ -437,7 +437,7 @@ Error EditorExportPlatformOSX::export_project(const String& p_path, bool p_debug } -Error EditorExportPlatformOSX::run(int p_device, bool p_dumb) { +Error EditorExportPlatformOSX::run(int p_device, bool p_dumb, bool p_remote_debug) { return OK; } diff --git a/platform/windows/os_windows.cpp b/platform/windows/os_windows.cpp index ec9e17c4f0..87d9a43d8c 100644 --- a/platform/windows/os_windows.cpp +++ b/platform/windows/os_windows.cpp @@ -1899,6 +1899,12 @@ uint64_t OS_Windows::get_unix_time() const { return (*(uint64_t*)&ft - *(uint64_t*)&fep) / 10000000; }; +uint64_t OS_Windows::get_system_time_msec() const { + SYSTEMTIME st; + GetSystemTime(&st); + return st.wMilliseconds; +} + void OS_Windows::delay_usec(uint32_t p_usec) const { if (p_usec < 1000) diff --git a/platform/windows/os_windows.h b/platform/windows/os_windows.h index 31e030d02e..cce94f5b25 100644 --- a/platform/windows/os_windows.h +++ b/platform/windows/os_windows.h @@ -263,6 +263,7 @@ public: virtual Time get_time(bool utc) const; virtual TimeZoneInfo get_time_zone_info() const; virtual uint64_t get_unix_time() const; + virtual uint64_t get_system_time_msec() const; virtual bool can_draw() const; virtual Error set_cwd(const String& p_cwd); @@ -272,7 +273,7 @@ public: 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); virtual Error kill(const ProcessID& p_pid); - + virtual bool has_environment(const String& p_var) const; virtual String get_environment(const String& p_var) const; |