mirror of
https://github.com/godotengine/godot.git
synced 2024-11-22 12:12:28 +00:00
Android: Drop support for NDK < r15
NDK r15c was released over two years ago (July 2017), and we cannot build against r14b anyway as it seems to fail with our setup to link the STL.
This commit is contained in:
parent
7d76f3b393
commit
d6ef5daf48
@ -53,7 +53,6 @@ if lib_arch_dir != '':
|
||||
|
||||
out_dir = '#platform/android/java/libs/' + lib_type_dir + '/' + lib_arch_dir
|
||||
env_android.Command(out_dir + '/libgodot_android.so', '#bin/libgodot' + env['SHLIBSUFFIX'], Move("$TARGET", "$SOURCE"))
|
||||
ndk_version = get_ndk_version(env["ANDROID_NDK_ROOT"])
|
||||
if ndk_version != None and LooseVersion(ndk_version) >= LooseVersion("15.0.4075724"):
|
||||
stl_lib_path = str(env['ANDROID_NDK_ROOT']) + '/sources/cxx-stl/llvm-libc++/libs/' + lib_arch_dir + '/libc++_shared.so'
|
||||
env_android.Command(out_dir + '/libc++_shared.so', stl_lib_path, Copy("$TARGET", "$SOURCE"))
|
||||
|
||||
stl_lib_path = str(env['ANDROID_NDK_ROOT']) + '/sources/cxx-stl/llvm-libc++/libs/' + lib_arch_dir + '/libc++_shared.so'
|
||||
env_android.Command(out_dir + '/libc++_shared.so', stl_lib_path, Copy("$TARGET", "$SOURCE"))
|
||||
|
@ -205,9 +205,8 @@ def configure(env):
|
||||
|
||||
common_opts = ['-fno-integrated-as', '-gcc-toolchain', gcc_toolchain_path]
|
||||
|
||||
lib_sysroot = env["ANDROID_NDK_ROOT"] + "/platforms/" + env['ndk_platform'] + "/" + env['ARCH']
|
||||
|
||||
## Compile flags
|
||||
|
||||
# Disable exceptions and rtti on non-tools (template) builds
|
||||
if env['tools'] or env['android_stl']:
|
||||
env.Append(CPPFLAGS=["-isystem", env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++/include"])
|
||||
@ -218,18 +217,15 @@ def configure(env):
|
||||
# Don't use dynamic_cast, necessary with no-rtti.
|
||||
env.Append(CPPDEFINES=['NO_SAFE_CAST'])
|
||||
|
||||
ndk_version = get_ndk_version(env["ANDROID_NDK_ROOT"])
|
||||
if ndk_version != None and LooseVersion(ndk_version) >= LooseVersion("15.0.4075724"):
|
||||
print("Using NDK unified headers")
|
||||
sysroot = env["ANDROID_NDK_ROOT"] + "/sysroot"
|
||||
env.Append(CPPFLAGS=["--sysroot=" + sysroot])
|
||||
env.Append(CPPFLAGS=["-isystem", sysroot + "/usr/include/" + abi_subpath])
|
||||
env.Append(CPPFLAGS=["-isystem", env["ANDROID_NDK_ROOT"] + "/sources/android/support/include"])
|
||||
# For unified headers this define has to be set manually
|
||||
env.Append(CPPDEFINES=[('__ANDROID_API__', str(get_platform(env['ndk_platform'])))])
|
||||
else:
|
||||
print("Using NDK deprecated headers")
|
||||
env.Append(CPPFLAGS=["-isystem", lib_sysroot + "/usr/include"])
|
||||
lib_sysroot = env["ANDROID_NDK_ROOT"] + "/platforms/" + env['ndk_platform'] + "/" + env['ARCH']
|
||||
|
||||
# Using NDK unified headers (NDK r15+)
|
||||
sysroot = env["ANDROID_NDK_ROOT"] + "/sysroot"
|
||||
env.Append(CPPFLAGS=["--sysroot=" + sysroot])
|
||||
env.Append(CPPFLAGS=["-isystem", sysroot + "/usr/include/" + abi_subpath])
|
||||
env.Append(CPPFLAGS=["-isystem", env["ANDROID_NDK_ROOT"] + "/sources/android/support/include"])
|
||||
# For unified headers this define has to be set manually
|
||||
env.Append(CPPDEFINES=[('__ANDROID_API__', str(get_platform(env['ndk_platform'])))])
|
||||
|
||||
env.Append(CCFLAGS='-fpic -ffunction-sections -funwind-tables -fstack-protector-strong -fvisibility=hidden -fno-strict-aliasing'.split())
|
||||
env.Append(CPPDEFINES=['NO_STATVFS', 'GLES_ENABLED'])
|
||||
@ -263,18 +259,15 @@ def configure(env):
|
||||
env.Append(CCFLAGS=common_opts)
|
||||
|
||||
## Link flags
|
||||
if ndk_version != None and LooseVersion(ndk_version) >= LooseVersion("15.0.4075724"):
|
||||
if LooseVersion(ndk_version) >= LooseVersion("17.1.4828580"):
|
||||
env.Append(LINKFLAGS=['-Wl,--exclude-libs,libgcc.a', '-Wl,--exclude-libs,libatomic.a', '-nostdlib++'])
|
||||
else:
|
||||
env.Append(LINKFLAGS=[env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++/libs/" + arch_subpath + "/libandroid_support.a"])
|
||||
env.Append(LINKFLAGS=['-shared', '--sysroot=' + lib_sysroot, '-Wl,--warn-shared-textrel'])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++/libs/" + arch_subpath + "/"])
|
||||
env.Append(LINKFLAGS=[env["ANDROID_NDK_ROOT"] +"/sources/cxx-stl/llvm-libc++/libs/" + arch_subpath + "/libc++_shared.so"])
|
||||
|
||||
ndk_version = get_ndk_version(env["ANDROID_NDK_ROOT"])
|
||||
if ndk_version != None and LooseVersion(ndk_version) >= LooseVersion("17.1.4828580"):
|
||||
env.Append(LINKFLAGS=['-Wl,--exclude-libs,libgcc.a', '-Wl,--exclude-libs,libatomic.a', '-nostdlib++'])
|
||||
else:
|
||||
env.Append(LINKFLAGS=['-shared', '--sysroot=' + lib_sysroot, '-Wl,--warn-shared-textrel'])
|
||||
if mt_link:
|
||||
env.Append(LINKFLAGS=['-Wl,--threads'])
|
||||
env.Append(LINKFLAGS=[env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++/libs/" + arch_subpath + "/libandroid_support.a"])
|
||||
env.Append(LINKFLAGS=['-shared', '--sysroot=' + lib_sysroot, '-Wl,--warn-shared-textrel'])
|
||||
env.Append(LIBPATH=[env["ANDROID_NDK_ROOT"] + "/sources/cxx-stl/llvm-libc++/libs/" + arch_subpath + "/"])
|
||||
env.Append(LINKFLAGS=[env["ANDROID_NDK_ROOT"] +"/sources/cxx-stl/llvm-libc++/libs/" + arch_subpath + "/libc++_shared.so"])
|
||||
|
||||
if env["android_arch"] == "armv7":
|
||||
env.Append(LINKFLAGS='-Wl,--fix-cortex-a8'.split())
|
||||
|
Loading…
Reference in New Issue
Block a user