| Index: tools/gyp/configurations_android.gypi
|
| ===================================================================
|
| --- tools/gyp/configurations_android.gypi (revision 31337)
|
| +++ tools/gyp/configurations_android.gypi (working copy)
|
| @@ -8,44 +8,56 @@
|
|
|
| {
|
| 'variables': {
|
| - # Location of Android NDK.
|
| - 'variables': {
|
| - 'variables': {
|
| - 'android_ndk_root%': '<!(/bin/echo -n $ANDROID_NDK_ROOT)',
|
| -
|
| - # Switch between different build types, currently only '0' is
|
| - # supported.
|
| - 'android_build_type%': 0,
|
| - },
|
| - 'android_ndk_root%': '<(android_ndk_root)',
|
| - 'android_ndk_sysroot': '<(android_ndk_root)/platforms/android-9/arch-<(android_target_arch)',
|
| - 'android_build_type%': '<(android_build_type)',
|
| - },
|
| - 'android_ndk_root%': '<(android_ndk_root)',
|
| - 'android_ndk_sysroot': '<(android_ndk_sysroot)',
|
| - 'android_ndk_include': '<(android_ndk_sysroot)/usr/include',
|
| - 'android_ndk_lib': '<(android_ndk_sysroot)/usr/lib',
|
| - # Enable to use the system stlport, otherwise statically
|
| - # link the NDK one?
|
| - 'use_system_stlport%': '<(android_build_type)',
|
| - 'android_stlport_library': 'stlport_static',
|
| - # Copy it out one scope.
|
| - 'android_build_type%': '<(android_build_type)',
|
| -
|
| - 'OS': 'android',
|
| - 'android_target_arch' : 'x86',
|
| + 'android_ndk_root': '<(PRODUCT_DIR)/../../third_party/android_tools/ndk',
|
| }, # variables
|
| 'target_defaults': {
|
| - 'defines': [
|
| - 'ANDROID',
|
| - ],
|
| 'configurations': {
|
| - 'Dart_Debug': {
|
| + # It is very important to get the order of the linker arguments correct.
|
| + # Therefore, we put them all in the architecture specific configurations,
|
| + # even though there are many flags in common, to avoid splitting them
|
| + # between two configurations and possibly accidentally mixing up the
|
| + # order.
|
| + 'Dart_Android_Base': {
|
| + 'abstract': 1,
|
| + 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter',
|
| + '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions',],
|
| + 'target_conditions': [
|
| + ['_toolset=="target"', {
|
| + 'defines': [
|
| + 'ANDROID',
|
| + 'USE_STLPORT=1',
|
| + '_STLP_USE_PTR_SPECIALIZATIONS=1',
|
| + '_STLP_NO_CSTD_FUNCTION_IMPORTS=1',
|
| + 'HAVE_OFF64_T',
|
| + 'HAVE_SYS_UIO_H',
|
| + ],
|
| + 'cflags!': [
|
| + '-pthread', # Not supported by Android toolchain.
|
| + ],
|
| + 'cflags': [
|
| + '-U__linux__', # Don't allow toolchain to claim -D__linux__
|
| + '-ffunction-sections',
|
| + '-funwind-tables',
|
| + '-fstack-protector',
|
| + '-fno-short-enums',
|
| + '-finline-limit=64',
|
| + '-Wa,--noexecstack',
|
| + ],
|
| + }],
|
| + # Settings for building host targets using the system toolchain.
|
| + ['_toolset=="host"', {
|
| + 'cflags': [ '-m32', '-pthread' ],
|
| + }],
|
| + ],
|
| + },
|
| + 'Dart_Android_Debug': {
|
| + 'abstract': 1,
|
| 'defines': [
|
| 'DEBUG',
|
| ],
|
| },
|
| - 'Dart_Release': {
|
| + 'Dart_Android_Release': {
|
| + 'abstract': 1,
|
| 'defines': [
|
| 'NDEBUG',
|
| ],
|
| @@ -60,122 +72,103 @@
|
| '-O3',
|
| ],
|
| },
|
| - }, # configurations
|
| - 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter',
|
| - '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions', ],
|
| - 'target_conditions': [
|
| - ['_toolset=="target"', {
|
| - 'cflags!': [
|
| - '-pthread', # Not supported by Android toolchain.
|
| - ],
|
| - 'cflags': [
|
| - '-U__linux__', # Don't allow toolchain to claim -D__linux__
|
| - '-ffunction-sections',
|
| - '-funwind-tables',
|
| - '-fstack-protector',
|
| - '-fno-short-enums',
|
| - '-finline-limit=64',
|
| - '-Wa,--noexecstack',
|
| - # Note: This include is in cflags to ensure that it comes after
|
| - # all of the includes.
|
| - '-I<(android_ndk_include)',
|
| - ],
|
| - 'defines': [
|
| - 'ANDROID',
|
| - 'USE_STLPORT=1',
|
| - '_STLP_USE_PTR_SPECIALIZATIONS=1',
|
| - '_STLP_NO_CSTD_FUNCTION_IMPORTS=1',
|
| - 'HAVE_OFF64_T',
|
| - 'HAVE_SYS_UIO_H',
|
| - ],
|
| - 'ldflags!': [
|
| - '-pthread', # Not supported by Android toolchain.
|
| - ],
|
| - 'ldflags': [
|
| - '-nostdlib',
|
| - '-Wl,--no-undefined',
|
| - # Don't export symbols from statically linked libraries.
|
| - '-Wl,--exclude-libs=ALL',
|
| - ],
|
| - 'libraries!': [
|
| - '-lrt', # librt is built into Bionic.
|
| - # Not supported by Android toolchain.
|
| - # Where do these come from? Can't find references in
|
| - # any Chromium gyp or gypi file. Maybe they come from
|
| - # gyp itself?
|
| - '-lpthread', '-lnss3', '-lnssutil3', '-lsmime3', '-lplds4', '-lplc4', '-lnspr4',
|
| - ],
|
| - 'libraries': [
|
| - '-l<(android_stlport_library)',
|
| - # Manually link the libgcc.a that the cross compiler uses.
|
| - # this picks up compiler-dependent math intrinsics.
|
| - '<!(${ANDROID_TOOLCHAIN}/*-gcc -print-libgcc-file-name)',
|
| - '-lc',
|
| - '-ldl',
|
| - '-lstdc++',
|
| - '-lm',
|
| - ],
|
| - 'conditions': [
|
| - ['android_build_type==0', {
|
| + 'Dart_Android_ia32_Base': {
|
| + 'abstract': 1,
|
| + 'variables': {
|
| + 'android_sysroot': '<(android_ndk_root)/platforms/android-14/arch-x86',
|
| + 'android_ndk_include': '<(android_sysroot)/usr/include',
|
| + 'android_ndk_lib': '<(android_sysroot)/usr/lib',
|
| + },
|
| + 'target_conditions': [
|
| + ['_toolset=="target"', {
|
| + # The x86 toolchain currently has problems with stack-protector.
|
| + 'cflags!': [
|
| + '-fstack-protector',
|
| + ],
|
| + 'cflags': [
|
| + '-I<(android_ndk_include)',
|
| + '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
|
| + '-fno-stack-protector',
|
| + ],
|
| + 'target_conditions': [
|
| + ['_type=="executable"', {
|
| + 'ldflags!': ['-Wl,--exclude-libs=ALL,-shared',],
|
| + }],
|
| + ['_type=="shared_library"', {
|
| + 'ldflags': ['-Wl,-shared,-Bsymbolic',],
|
| + }],
|
| + ],
|
| 'ldflags': [
|
| + 'ia32', '>(_type)', 'target',
|
| + '-nostdlib',
|
| + '-Wl,--no-undefined',
|
| + # Don't export symbols from statically linked libraries.
|
| + '-Wl,--exclude-libs=ALL',
|
| '-Wl,-rpath-link=<(android_ndk_lib)',
|
| '-L<(android_ndk_lib)',
|
| + # NOTE: The stlport header include paths below are specified in
|
| + # cflags rather than include_dirs because they need to come
|
| + # after include_dirs. Think of them like system headers, but
|
| + # don't use '-isystem' because the arm-linux-androideabi-4.4.3
|
| + # toolchain (circa Gingerbread) will exhibit strange errors.
|
| + # The include ordering here is important; change with caution.
|
| + '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86',
|
| + '-z',
|
| + 'muldefs',
|
| + '-Bdynamic',
|
| + '-Wl,-dynamic-linker,/system/bin/linker',
|
| + '-Wl,--gc-sections',
|
| + '-Wl,-z,nocopyreloc',
|
| + # crtbegin_dynamic.o should be the last item in ldflags.
|
| + '<(android_ndk_lib)/crtbegin_dynamic.o',
|
| ],
|
| - }],
|
| - ['target_arch == "arm"', {
|
| - 'ldflags': [
|
| - # Enable identical code folding to reduce size.
|
| - '-Wl,--icf=safe',
|
| + 'ldflags!': [
|
| + '-pthread', # Not supported by Android toolchain.
|
| ],
|
| }],
|
| - ['target_arch=="arm" and armv7==1', {
|
| + ['_toolset=="host"', {
|
| + 'ldflags': [ '-m32', '-pthread' ],
|
| + }],
|
| + ],
|
| + },
|
| + 'Dart_Android_arm_Base': {
|
| + 'abstract': 1,
|
| + 'variables': {
|
| + 'android_sysroot': '<(android_ndk_root)/platforms/android-14/arch-arm',
|
| + 'android_ndk_include': '<(android_sysroot)/usr/include',
|
| + 'android_ndk_lib': '<(android_sysroot)/usr/lib',
|
| + },
|
| + 'target_conditions': [
|
| + ['_toolset=="target"', {
|
| 'cflags': [
|
| + '-I<(android_ndk_include)',
|
| + '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
|
| '-march=armv7-a',
|
| '-mtune=cortex-a8',
|
| '-mfpu=vfp3',
|
| + '-mfloat-abi=softfp',
|
| ],
|
| - }],
|
| - # NOTE: The stlport header include paths below are specified in
|
| - # cflags rather than include_dirs because they need to come
|
| - # after include_dirs. Think of them like system headers, but
|
| - # don't use '-isystem' because the arm-linux-androideabi-4.4.3
|
| - # toolchain (circa Gingerbread) will exhibit strange errors.
|
| - # The include ordering here is important; change with caution.
|
| - ['use_system_stlport==0', {
|
| - 'cflags': [
|
| - '-I<(android_ndk_root)/sources/cxx-stl/stlport/stlport',
|
| - ],
|
| - 'conditions': [
|
| - ['target_arch=="arm" and armv7==1', {
|
| - 'ldflags': [
|
| - '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi-v7a',
|
| - ],
|
| + 'target_conditions': [
|
| + ['_type=="executable"', {
|
| + 'ldflags!': ['-Wl,--exclude-libs=ALL,-shared',],
|
| }],
|
| - ['target_arch=="arm" and armv7==0', {
|
| - 'ldflags': [
|
| - '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi',
|
| - ],
|
| + ['_type=="shared_library"', {
|
| + 'ldflags': ['-Wl,-shared,-Bsymbolic',],
|
| }],
|
| - ['target_arch=="ia32"', {
|
| - 'ldflags': [
|
| - '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/x86',
|
| - ],
|
| - }],
|
| ],
|
| - }],
|
| - ['target_arch=="ia32"', {
|
| - # The x86 toolchain currently has problems with stack-protector.
|
| - 'cflags!': [
|
| - '-fstack-protector',
|
| - ],
|
| - 'cflags': [
|
| - '-fno-stack-protector',
|
| - ],
|
| - }],
|
| - ],
|
| - 'target_conditions': [
|
| - ['_type=="executable"', {
|
| 'ldflags': [
|
| + 'arm', '>(_type)', 'target',
|
| + '-nostdlib',
|
| + '-Wl,--no-undefined',
|
| + # Don't export symbols from statically linked libraries.
|
| + '-Wl,--exclude-libs=ALL',
|
| + '-Wl,-rpath-link=<(android_ndk_lib)',
|
| + '-L<(android_ndk_lib)',
|
| + # Enable identical code folding to reduce size.
|
| + '-Wl,--icf=safe',
|
| + '-L<(android_ndk_root)/sources/cxx-stl/stlport/libs/armeabi-v7a',
|
| + '-z',
|
| + 'muldefs',
|
| '-Bdynamic',
|
| '-Wl,-dynamic-linker,/system/bin/linker',
|
| '-Wl,--gc-sections',
|
| @@ -183,30 +176,15 @@
|
| # crtbegin_dynamic.o should be the last item in ldflags.
|
| '<(android_ndk_lib)/crtbegin_dynamic.o',
|
| ],
|
| - 'libraries': [
|
| - # crtend_android.o needs to be the last item in libraries.
|
| - # Do not add any libraries after this!
|
| - '<(android_ndk_lib)/crtend_android.o',
|
| + 'ldflags!': [
|
| + '-pthread', # Not supported by Android toolchain.
|
| ],
|
| }],
|
| - ['_type=="shared_library"', {
|
| - 'ldflags': [
|
| - '-Wl,-shared,-Bsymbolic',
|
| - ],
|
| + ['_toolset=="host"', {
|
| + 'ldflags': [ '-m32', '-pthread' ],
|
| }],
|
| ],
|
| - }], # _toolset=="target"
|
| - # Settings for building host targets using the system toolchain.
|
| - ['_toolset=="host"', {
|
| - 'cflags': [ '-m32', '-pthread' ],
|
| - 'ldflags': [ '-m32', '-pthread' ],
|
| - 'ldflags!': [
|
| - '-Wl,-z,noexecstack',
|
| - '-Wl,--gc-sections',
|
| - '-Wl,-O1',
|
| - '-Wl,--as-needed',
|
| - ],
|
| - }],
|
| - ], # target_conditions
|
| + },
|
| + }, # configurations
|
| }, # target_defaults
|
| }
|
|
|