Progress on newer NDK support (forces minimum API from 14 to 16)

This commit is contained in:
Joshua Granick
2019-04-05 18:07:13 -07:00
parent 2cb09c55df
commit 6dce7ad79a
9 changed files with 32 additions and 16 deletions

View File

@@ -1,6 +1,6 @@
<xml> <xml>
<set name="PLATFORM" value="android-14" if="android" unless="HXCPP_ARM64" /> <set name="PLATFORM" value="android-16" if="android" unless="HXCPP_ARM64" />
<set name="PLATFORM" value="android-21" if="android HXCPP_ARM64" /> <set name="PLATFORM" value="android-21" if="android HXCPP_ARM64" />
<set name="HXCPP_CPP11" value="1" /> <set name="HXCPP_CPP11" value="1" />

View File

@@ -353,7 +353,7 @@ typedef uint64_t uintmax_t;
#endif #endif
#ifdef ANDROID #if defined(ANDROID) && !defined(HXCPP_CLANG)
std::size_t _mbsrtowcs(wchar_t * ws, const char **src, std::size_t wn, std::mbstate_t *st); std::size_t _mbsrtowcs(wchar_t * ws, const char **src, std::size_t wn, std::mbstate_t *st);

View File

@@ -50,8 +50,8 @@ HL_API const uchar *hl_field_name( int hash ) { return NULL; }
HL_API void hl_error_msg( const uchar *msg, ... ) {} HL_API void hl_error_msg( const uchar *msg, ... ) {}
HL_API void hl_assert( void ) {} HL_API void hl_assert( void ) {}
HL_API void hl_throw( vdynamic *v ) {} HL_API void hl_throw( vdynamic *v ) { throw ""; }
HL_API void hl_rethrow( vdynamic *v ) {} HL_API void hl_rethrow( vdynamic *v ) { throw ""; }
HL_API void hl_setup_longjump( void *j ) {} HL_API void hl_setup_longjump( void *j ) {}
HL_API void hl_setup_exception( void *resolve_symbol, void *capture_stack ) {} HL_API void hl_setup_exception( void *resolve_symbol, void *capture_stack ) {}
HL_API void hl_dump_stack( void ) {} HL_API void hl_dump_stack( void ) {}

View File

@@ -817,6 +817,7 @@ namespace lime {
} }
} }
default:
break; break;
} }
@@ -1052,6 +1053,8 @@ namespace lime {
out.l = 0; out.l = 0;
return true; return true;
default: {}
} }
return false; return false;
@@ -1100,6 +1103,7 @@ namespace lime {
case jniFloat: out.f = (float)val_number (inValue); return true; case jniFloat: out.f = (float)val_number (inValue); return true;
case jniDouble: out.d = val_number (inValue); return true; case jniDouble: out.d = val_number (inValue); return true;
case jniVoid: out.l = 0; return true; case jniVoid: out.l = 0; return true;
default: {}
} }
@@ -1173,7 +1177,7 @@ namespace lime {
bool Ok () const { bool Ok () const {
return mField > 0; return mField != 0;
} }
@@ -1231,6 +1235,8 @@ namespace lime {
result = alloc_float (env->GetStaticDoubleField (mClass, mField)); result = alloc_float (env->GetStaticDoubleField (mClass, mField));
break; break;
default: {}
} }
} }
@@ -1301,6 +1307,8 @@ namespace lime {
env->SetStaticDoubleField (mClass, mField, setValue.d); env->SetStaticDoubleField (mClass, mField, setValue.d);
break; break;
default: {}
} }
} }
@@ -1363,6 +1371,8 @@ namespace lime {
result = alloc_float(env->GetDoubleField (inObject, mField)); result = alloc_float(env->GetDoubleField (inObject, mField));
break; break;
default: {}
} }
} }
@@ -1433,6 +1443,8 @@ namespace lime {
env->SetDoubleField (inObject, mField, setValue.d); env->SetDoubleField (inObject, mField, setValue.d);
break; break;
default: {}
} }
} }
@@ -1706,7 +1718,7 @@ namespace lime {
bool Ok () const { bool Ok () const {
return mMethod > 0; return mMethod != 0;
} }
@@ -1786,6 +1798,8 @@ namespace lime {
result = alloc_float (env->CallStaticDoubleMethodA (mClass, mMethod, jargs)); result = alloc_float (env->CallStaticDoubleMethodA (mClass, mMethod, jargs));
break; break;
default: {}
} }
} }
@@ -1867,6 +1881,8 @@ namespace lime {
result = alloc_float (env->CallDoubleMethodA (inObject, mMethod, jargs)); result = alloc_float (env->CallDoubleMethodA (inObject, mMethod, jargs));
break; break;
default: {}
} }
} }

View File

@@ -250,7 +250,7 @@ long int __fdelt_chk (long int d) {
#endif #endif
#ifdef ANDROID #if defined(ANDROID) && !defined(HXCPP_CLANG)
#include <stdint.h> #include <stdint.h>
#include <wchar.h> #include <wchar.h>

View File

@@ -754,7 +754,7 @@ namespace lime {
len = sfnt_name.string_len; len = sfnt_name.string_len;
family_name = new wchar_t[len + 1]; family_name = new wchar_t[len + 1];
#ifdef ANDROID #if defined(ANDROID) && !defined(HXCPP_CLANG)
// Fix some devices (Android 4.x or older) that have a bad stdc implementation // Fix some devices (Android 4.x or older) that have a bad stdc implementation
_mbsrtowcs (family_name, (const char**)&sfnt_name.string, len, 0); _mbsrtowcs (family_name, (const char**)&sfnt_name.string, len, 0);
#else #else

View File

@@ -69,8 +69,8 @@ class AndroidPlatform extends PlatformTarget
for (architecture in architectures) for (architecture in architectures)
{ {
var haxeParams = [hxml, "-D", "android", "-D", "PLATFORM=android-14"]; var haxeParams = [hxml, "-D", "android", "-D", "PLATFORM=android-16"];
var cppParams = ["-Dandroid", "-DPLATFORM=android-14"]; var cppParams = ["-Dandroid", "-DPLATFORM=android-16"];
var path = sourceSet + "/jniLibs/armeabi"; var path = sourceSet + "/jniLibs/armeabi";
var suffix = ".so"; var suffix = ".so";
@@ -249,10 +249,10 @@ class AndroidPlatform extends PlatformTarget
var commands = []; var commands = [];
if (armv5) commands.push(["-Dandroid", "-DPLATFORM=android-14"]); if (armv5) commands.push(["-Dandroid", "-DPLATFORM=android-16"]);
if (armv7) commands.push(["-Dandroid", "-DHXCPP_ARMV7", "-DHXCPP_ARM7", "-DPLATFORM=android-14"]); if (armv7) commands.push(["-Dandroid", "-DHXCPP_ARMV7", "-DHXCPP_ARM7", "-DPLATFORM=android-16"]);
if (arm64) commands.push(["-Dandroid", "-DHXCPP_ARM64", "-DPLATFORM=android-21"]); if (arm64) commands.push(["-Dandroid", "-DHXCPP_ARM64", "-DPLATFORM=android-21"]);
if (x86) commands.push(["-Dandroid", "-DHXCPP_X86", "-DPLATFORM=android-14"]); if (x86) commands.push(["-Dandroid", "-DHXCPP_X86", "-DPLATFORM=android-16"]);
CPPHelper.rebuild(project, commands); CPPHelper.rebuild(project, commands);
} }
@@ -339,7 +339,7 @@ class AndroidPlatform extends PlatformTarget
context.CPP_DIR = targetDirectory + "/obj"; context.CPP_DIR = targetDirectory + "/obj";
context.OUTPUT_DIR = targetDirectory; context.OUTPUT_DIR = targetDirectory;
context.ANDROID_INSTALL_LOCATION = project.config.getString("android.install-location", "auto"); context.ANDROID_INSTALL_LOCATION = project.config.getString("android.install-location", "auto");
context.ANDROID_MINIMUM_SDK_VERSION = project.config.getInt("android.minimum-sdk-version", 14); context.ANDROID_MINIMUM_SDK_VERSION = project.config.getInt("android.minimum-sdk-version", 16);
context.ANDROID_TARGET_SDK_VERSION = project.config.getInt("android.target-sdk-version", 26); context.ANDROID_TARGET_SDK_VERSION = project.config.getInt("android.target-sdk-version", 26);
context.ANDROID_EXTENSIONS = project.config.getArrayString("android.extension"); context.ANDROID_EXTENSIONS = project.config.getArrayString("android.extension");
context.ANDROID_PERMISSIONS = project.config.getArrayString("android.permission", [ context.ANDROID_PERMISSIONS = project.config.getArrayString("android.permission", [