diff options
Diffstat (limited to 'platform/android')
-rw-r--r-- | platform/android/SCsub | 4 | ||||
-rw-r--r-- | platform/android/detect.py | 28 | ||||
-rw-r--r-- | platform/android/export/export.cpp | 35 |
3 files changed, 31 insertions, 36 deletions
diff --git a/platform/android/SCsub b/platform/android/SCsub index 699db30cad..3c55b993ef 100644 --- a/platform/android/SCsub +++ b/platform/android/SCsub @@ -66,6 +66,6 @@ for x in env.android_module_libraries: shutil.copy(x,abspath+"/java/libs") -env_android.SharedLibrary("#platform/android/libgodot_android.so",[android_objects]) +env_android.SharedLibrary("#bin/libgodot_android",[android_objects],SHLIBSUFFIX=env["SHLIBSUFFIX"]) -env.Command('#bin/libgodot_android.so', '#platform/android/libgodot_android.so', Copy('bin/libgodot_android.so', 'platform/android/libgodot_android.so')) +#env.Command('#bin/libgodot_android.so', '#platform/android/libgodot_android.so', Copy('bin/libgodot_android.so', 'platform/android/libgodot_android.so')) diff --git a/platform/android/detect.py b/platform/android/detect.py index 0c860c23b1..062cc62b52 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -27,14 +27,13 @@ def get_opts(): ('NDK_TARGET', 'toolchain to use for the NDK',"arm-linux-androideabi-4.8"), ('android_stl','enable STL support in android port (for modules)','no'), ('armv6','compile for older phones running arm v6 (instead of v7+neon+smp)','no'), - ('x86','compile for x86','no') + ('x86','Xompile for Android-x86','no') ] def get_flags(): return [ - ('lua', 'no'), ('tools', 'no'), ('nedmalloc', 'no'), ('builtin_zlib', 'no'), @@ -77,13 +76,7 @@ def configure(env): env.Append(CPPPATH=['#platform/android']) if env['x86']=='yes': - env['OBJSUFFIX'] = ".android.ox" - env['LIBSUFFIX'] = ".android.ax" - else: - env['OBJSUFFIX'] = ".android.o" - env['LIBSUFFIX'] = ".android.a" - env['PROGSUFFIX'] = ".android" - env['SHLIBSUFFIX'] = ".so" + env.extra_suffix=".x86" gcc_path=env["ANDROID_NDK_ROOT"]+"/toolchains/"+env["NDK_TARGET"]+"/prebuilt/"; @@ -128,7 +121,7 @@ def configure(env): ld_path=env["ANDROID_NDK_ROOT"]+"/platforms/"+ndk_platform+"/"+env['ARCH']+"/usr/lib" env.Append(CPPPATH=[gcc_include]) # env['CCFLAGS'] = string.split('-DNO_THREADS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -fno-exceptions -mthumb -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED ') - print("********* armv6", env['armv6']) + if env['x86']=='yes': env['CCFLAGS'] = string.split('-DNO_STATVFS -MMD -MP -MF -fpic -ffunction-sections -funwind-tables -fstack-protector -D__GLIBC__ -Wno-psabi -ftree-vectorize -funsafe-math-optimizations -fno-strict-aliasing -DANDROID -Wa,--noexecstack -DGLES2_ENABLED -DGLES1_ENABLED') elif env["armv6"]!="no": @@ -149,23 +142,10 @@ def configure(env): if (env["target"]=="release"): env.Append(CCFLAGS=['-O2', '-ffast-math','-fomit-frame-pointer']) - env['OBJSUFFIX'] = "_opt"+env['OBJSUFFIX'] - env['LIBSUFFIX'] = "_opt"+env['LIBSUFFIX'] elif (env["target"]=="release_debug"): env.Append(CCFLAGS=['-O2', '-ffast-math','-DDEBUG_ENABLED']) - env['OBJSUFFIX'] = "_optd"+env['OBJSUFFIX'] - env['LIBSUFFIX'] = "_optd"+env['LIBSUFFIX'] - - elif (env["target"]=="profile"): - - env.Append(CCFLAGS=['-O2', '-ffast-math','-fomit-frame-pointer', '-g1']) - env.Append(LIBPATH=['#platform/android/armeabi']) - env.Append(LIBS=['andprof']) - env['OBJSUFFIX'] = "_prof"+env['OBJSUFFIX'] - env['LIBSUFFIX'] = "_prof"+env['LIBSUFFIX'] - env['SHLIBSUFFIX'] = "_prof"+env['SHLIBSUFFIX'] elif (env["target"]=="debug"): @@ -174,8 +154,10 @@ def configure(env): if env["armv6"] == "no" and env['x86'] != 'yes': env['neon_enabled']=True + env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED', '-DNO_FCNTL','-DMPC_FIXED_POINT']) # env.Append(CPPFLAGS=['-DANDROID_ENABLED', '-DUNIX_ENABLED','-DMPC_FIXED_POINT']) + if (env['android_stl']=='yes'): #env.Append(CCFLAGS=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/system/include"]) env.Append(CPPPATH=[env["ANDROID_NDK_ROOT"]+"/sources/cxx-stl/gnu-libstdc++/4.4.3/include"]) diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 8f3bb0f994..2b4a2baf24 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -184,6 +184,7 @@ class EditorExportPlatformAndroid : public EditorExportPlatform { String cmdline; bool _signed; bool apk_expansion; + bool remove_prev; String apk_expansion_salt; String apk_expansion_pkey; int orientation; @@ -258,7 +259,9 @@ bool EditorExportPlatformAndroid::_set(const StringName& p_name, const Variant& String n=p_name; - if (n=="custom_package/debug") + if (n=="one_click_deploy/clear_previous_install") + remove_prev=p_value; + else if (n=="custom_package/debug") custom_debug_package=p_value; else if (n=="custom_package/release") custom_release_package=p_value; @@ -321,7 +324,9 @@ bool EditorExportPlatformAndroid::_set(const StringName& p_name, const Variant& bool EditorExportPlatformAndroid::_get(const StringName& p_name,Variant &r_ret) const{ String n=p_name; - if (n=="custom_package/debug") + if (n=="one_click_deploy/clear_previous_install") + r_ret=remove_prev; + else if (n=="custom_package/debug") r_ret=custom_debug_package; else if (n=="custom_package/release") r_ret=custom_release_package; @@ -378,6 +383,7 @@ bool EditorExportPlatformAndroid::_get(const StringName& p_name,Variant &r_ret) void EditorExportPlatformAndroid::_get_property_list( List<PropertyInfo> *p_list) const{ + p_list->push_back( PropertyInfo( Variant::BOOL, "one_click_deploy/clear_previous_install")); p_list->push_back( PropertyInfo( Variant::STRING, "custom_package/debug", PROPERTY_HINT_GLOBAL_FILE,"apk")); p_list->push_back( PropertyInfo( Variant::STRING, "custom_package/release", PROPERTY_HINT_GLOBAL_FILE,"apk")); p_list->push_back( PropertyInfo( Variant::STRING, "command_line/extra_args")); @@ -1449,16 +1455,20 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) { return err; } - ep.step("Uninstalling..",1); - - print_line("Uninstalling previous version: "+devices[p_device].name); List<String> args; - args.push_back("-s"); - args.push_back(devices[p_device].id); - args.push_back("uninstall"); - args.push_back(package); int rv; - err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv); + + if (remove_prev) { + ep.step("Uninstalling..",1); + + print_line("Uninstalling previous version: "+devices[p_device].name); + + args.push_back("-s"); + args.push_back(devices[p_device].id); + args.push_back("uninstall"); + args.push_back(package); + + err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv); #if 0 if (err || rv!=0) { EditorNode::add_io_error("Could not install to device."); @@ -1466,6 +1476,8 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) { return ERR_CANT_CREATE; } #endif + } + print_line("Installing into device (please wait..): "+devices[p_device].name); ep.step("Installing to Device (please wait..)..",2); @@ -1474,7 +1486,7 @@ Error EditorExportPlatformAndroid::run(int p_device, bool p_dumb) { args.push_back(devices[p_device].id); args.push_back("install"); args.push_back(export_to); - rv; + err = OS::get_singleton()->execute(adb,args,true,NULL,NULL,&rv); if (err || rv!=0) { EditorNode::add_io_error("Could not install to device."); @@ -1516,6 +1528,7 @@ EditorExportPlatformAndroid::EditorExportPlatformAndroid() { device_lock = Mutex::create(); quit_request=false; orientation=0; + remove_prev=false; device_thread=Thread::create(_device_poll_thread,this); devices_changed=true; |