Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(425)

Side by Side Diff: build/common.gypi

Issue 194843002: Enable Android x64 build (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 # IMPORTANT: 5 # IMPORTANT:
6 # Please don't directly include this file if you are building via gyp_chromium, 6 # Please don't directly include this file if you are building via gyp_chromium,
7 # since gyp_chromium is automatically forcing its inclusion. 7 # since gyp_chromium is automatically forcing its inclusion.
8 { 8 {
9 # Variables expected to be overriden on the GYP command line (-D) or by 9 # Variables expected to be overriden on the GYP command line (-D) or by
10 # ~/.gyp/include.gypi. 10 # ~/.gyp/include.gypi.
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after
785 # supported. 785 # supported.
786 # NOTE: The check for disable_nacl==0 and component=="static_library" 786 # NOTE: The check for disable_nacl==0 and component=="static_library"
787 # can't be used here because these variables are not defined yet, but it 787 # can't be used here because these variables are not defined yet, but it
788 # is still not supported. 788 # is still not supported.
789 ['OS!="ios" and OS!="android" and chromeos==0', { 789 ['OS!="ios" and OS!="android" and chromeos==0', {
790 'test_isolation_mode%': 'check', 790 'test_isolation_mode%': 'check',
791 }, { 791 }, {
792 'test_isolation_mode%': 'noop', 792 'test_isolation_mode%': 'noop',
793 }], 793 }],
794 # Whether Android ARM or x86 build uses OpenMAX DL FFT. 794 # Whether Android ARM or x86 build uses OpenMAX DL FFT.
795 ['OS=="android" and ((target_arch=="arm" and arm_version >= 7) or target _arch=="ia32") and android_webview_build==0', { 795 ['OS=="android" and ((target_arch=="arm" and arm_version >= 7) or target _arch=="ia32" or target_arch=="x64") and android_webview_build==0', {
796 # Currently only supported on Android ARMv7+, or ia32 796 # Currently only supported on Android ARMv7+, ia32 or x64
797 # without webview. When enabled, this will also enable 797 # without webview. When enabled, this will also enable
798 # WebAudio support on Android ARM and ia32. Default is 798 # WebAudio support on Android ARM, ia32 and x64. Default is
799 # enabled. Whether WebAudio is actually available depends 799 # enabled. Whether WebAudio is actually available depends
800 # on runtime settings and flags. 800 # on runtime settings and flags.
801 'use_openmax_dl_fft%': 1, 801 'use_openmax_dl_fft%': 1,
802 }, { 802 }, {
803 'use_openmax_dl_fft%': 0, 803 'use_openmax_dl_fft%': 0,
804 }], 804 }],
805 ['OS=="win" or OS=="linux"', { 805 ['OS=="win" or OS=="linux"', {
806 'enable_mdns%' : 1, 806 'enable_mdns%' : 1,
807 }], 807 }],
808 808
(...skipping 482 matching lines...) Expand 10 before | Expand all | Expand 10 after
1291 # away once the chrome and blink interfaces are in sync 1291 # away once the chrome and blink interfaces are in sync
1292 'enable_new_gamepad_api%': 1, 1292 'enable_new_gamepad_api%': 1,
1293 1293
1294 'conditions': [ 1294 'conditions': [
1295 # The version of GCC in use, set later in platforms that use GCC and have 1295 # The version of GCC in use, set later in platforms that use GCC and have
1296 # not explicitly chosen to build with clang. Currently, this means all 1296 # not explicitly chosen to build with clang. Currently, this means all
1297 # platforms except Windows, Mac and iOS. 1297 # platforms except Windows, Mac and iOS.
1298 # TODO(glider): set clang to 1 earlier for ASan and TSan builds so that 1298 # TODO(glider): set clang to 1 earlier for ASan and TSan builds so that
1299 # it takes effect here. 1299 # it takes effect here.
1300 ['os_posix==1 and OS!="mac" and OS!="ios" and clang==0 and asan==0 and lsa n==0 and tsan==0 and msan==0', { 1300 ['os_posix==1 and OS!="mac" and OS!="ios" and clang==0 and asan==0 and lsa n==0 and tsan==0 and msan==0', {
1301 'conditions': [ 1301 'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)',
Torne 2014/03/11 11:15:35 Is this correct? We're forcing gcc 4.6 at present.
rmcilroy 2014/03/11 11:42:19 I think x64 requires 4.8 - is that right Zhenyu?
Zhenyu Liang 2014/03/12 10:27:23 Yeah, we are using gcc 4.8 for x64 porting. The ch
rmcilroy 2014/03/12 11:04:08 Is there a reason you cannot do: ['OS=="androi
Zhenyu Liang 2014/03/12 11:30:53 I had tried this way initially. It doesn't work. G
rmcilroy 2014/03/12 15:09:53 Are you sure? When I try this myself it seems to
Zhenyu Liang 2014/03/12 18:46:32 Sorry, I misremembered that _toolset is what I tri
1302 ['OS=="android"', {
1303 # We directly set the gcc_version since we know what we use.
1304 'gcc_version%': 46,
1305 }, {
1306 'gcc_version%': '<!(python <(DEPTH)/build/compiler_version.py)',
1307 }],
1308 ],
1309 }, { 1302 }, {
1310 'gcc_version%': 0, 1303 'gcc_version%': 0,
1311 }], 1304 }],
1312 ['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(windows_sdk_defa ult_path))"=="True"', { 1305 ['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(windows_sdk_defa ult_path))"=="True"', {
1313 'windows_sdk_path%': '<(windows_sdk_default_path)', 1306 'windows_sdk_path%': '<(windows_sdk_default_path)',
1314 }, { 1307 }, {
1315 'windows_sdk_path%': 'C:/Program Files (x86)/Windows Kits/8.0', 1308 'windows_sdk_path%': 'C:/Program Files (x86)/Windows Kits/8.0',
1316 }], 1309 }],
1317 ['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(directx_sdk_defa ult_path))"=="True"', { 1310 ['OS=="win" and "<!(python <(DEPTH)/build/dir_exists.py <(directx_sdk_defa ult_path))"=="True"', {
1318 'directx_sdk_path%': '<(directx_sdk_default_path)', 1311 'directx_sdk_path%': '<(directx_sdk_default_path)',
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
1420 # Android API level 14 is ICS (Android 4.0) which is the minimum 1413 # Android API level 14 is ICS (Android 4.0) which is the minimum
1421 # platform requirement for Chrome on Android, we use it for native 1414 # platform requirement for Chrome on Android, we use it for native
1422 # code compilation. 1415 # code compilation.
1423 'conditions': [ 1416 'conditions': [
1424 ['target_arch == "ia32"', { 1417 ['target_arch == "ia32"', {
1425 'android_app_abi%': 'x86', 1418 'android_app_abi%': 'x86',
1426 'android_gdbserver%': '<(android_ndk_root)/prebuilt/android-x86/gd bserver/gdbserver', 1419 'android_gdbserver%': '<(android_ndk_root)/prebuilt/android-x86/gd bserver/gdbserver',
1427 'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-14/ arch-x86', 1420 'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-14/ arch-x86',
1428 'android_toolchain%': '<(android_ndk_root)/toolchains/x86-4.6/preb uilt/<(host_os)-<(android_host_arch)/bin', 1421 'android_toolchain%': '<(android_ndk_root)/toolchains/x86-4.6/preb uilt/<(host_os)-<(android_host_arch)/bin',
1429 }], 1422 }],
1423 ['target_arch == "x64"', {
1424 'android_app_abi%': 'x86_64',
1425 'android_gdbserver%': '<(android_ndk_root)/prebuilt/android-x86_64 /gdbserver/gdbserver',
1426 'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-19/ arch-x86_64',
1427 'android_toolchain%': '<(android_ndk_root)/toolchains/x86_64-4.8/p rebuilt/<(host_os)-<(android_host_arch)/bin',
1428 }],
1430 ['target_arch=="arm"', { 1429 ['target_arch=="arm"', {
1431 'conditions': [ 1430 'conditions': [
1432 ['arm_version<7', { 1431 ['arm_version<7', {
1433 'android_app_abi%': 'armeabi', 1432 'android_app_abi%': 'armeabi',
1434 }, { 1433 }, {
1435 'android_app_abi%': 'armeabi-v7a', 1434 'android_app_abi%': 'armeabi-v7a',
1436 }], 1435 }],
1437 ], 1436 ],
1438 'android_gdbserver%': '<(android_ndk_root)/prebuilt/android-arm/gd bserver/gdbserver', 1437 'android_gdbserver%': '<(android_ndk_root)/prebuilt/android-arm/gd bserver/gdbserver',
1439 'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-14/ arch-arm', 1438 'android_ndk_sysroot%': '<(android_ndk_root)/platforms/android-14/ arch-arm',
(...skipping 26 matching lines...) Expand all
1466 'android_stlport_include': '<(android_stlport_root)/stlport', 1465 'android_stlport_include': '<(android_stlport_root)/stlport',
1467 'android_stlport_libs_dir': '<(android_stlport_root)/libs/<(android_app_ abi)', 1466 'android_stlport_libs_dir': '<(android_stlport_root)/libs/<(android_app_ abi)',
1468 'host_os%': '<(host_os)', 1467 'host_os%': '<(host_os)',
1469 1468
1470 # Location of the "strip" binary, used by both gyp and scripts. 1469 # Location of the "strip" binary, used by both gyp and scripts.
1471 'android_strip%' : '<!(/bin/echo -n <(android_toolchain)/*-strip)', 1470 'android_strip%' : '<!(/bin/echo -n <(android_toolchain)/*-strip)',
1472 1471
1473 # Location of the "readelf" binary. 1472 # Location of the "readelf" binary.
1474 'android_readelf%' : '<!(/bin/echo -n <(android_toolchain)/*-readelf)', 1473 'android_readelf%' : '<!(/bin/echo -n <(android_toolchain)/*-readelf)',
1475 1474
1475 # GCC version of Android toolchain
1476 'gcc_version%': '<!(CXX=<(android_toolchain)/*-g++ python <(DEPTH)/build /compiler_version.py)',
rmcilroy 2014/03/11 11:42:19 Why is this required? Isn't it done above?
Zhenyu Liang 2014/03/12 10:27:23 It determines the gcc version of android toolchain
1477
1476 # Determines whether we should optimize JNI generation at the cost of 1478 # Determines whether we should optimize JNI generation at the cost of
1477 # breaking assumptions in the build system that when inputs have changed 1479 # breaking assumptions in the build system that when inputs have changed
1478 # the outputs should always change as well. This is meant purely for 1480 # the outputs should always change as well. This is meant purely for
1479 # developer builds, to avoid spurious re-linking of native files. 1481 # developer builds, to avoid spurious re-linking of native files.
1480 'optimize_jni_generation%': 0, 1482 'optimize_jni_generation%': 0,
1481 1483
1482 # Always uses openssl. 1484 # Always uses openssl.
1483 'use_openssl%': 1, 1485 'use_openssl%': 1,
1484 1486
1485 'proprietary_codecs%': '<(proprietary_codecs)', 1487 'proprietary_codecs%': '<(proprietary_codecs)',
(...skipping 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
1729 }], 1731 }],
1730 ['image_loader_extension==1', { 1732 ['image_loader_extension==1', {
1731 'grit_defines': ['-D', 'image_loader_extension'], 1733 'grit_defines': ['-D', 'image_loader_extension'],
1732 }], 1734 }],
1733 ['remoting==1', { 1735 ['remoting==1', {
1734 'grit_defines': ['-D', 'remoting'], 1736 'grit_defines': ['-D', 'remoting'],
1735 }], 1737 }],
1736 ['use_titlecase_in_grd_files==1', { 1738 ['use_titlecase_in_grd_files==1', {
1737 'grit_defines': ['-D', 'use_titlecase'], 1739 'grit_defines': ['-D', 'use_titlecase'],
1738 }], 1740 }],
1739 ['OS=="android" and target_arch=="ia32"', { 1741 ['OS=="android" and (target_arch=="ia32" or target_arch=="x64")', {
1740 # WebAudio on Android/x86 is disabled by default, unlike 1742 # WebAudio on Android/x86 is disabled by default, unlike
1741 # everywhere else, so use appropriate message. 1743 # everywhere else, so use appropriate message.
1742 'grit_defines': ['-D', 'use_webaudio_enable_message'], 1744 'grit_defines': ['-D', 'use_webaudio_enable_message'],
1743 }], 1745 }],
1744 ['use_third_party_translations==1', { 1746 ['use_third_party_translations==1', {
1745 'grit_defines': ['-D', 'use_third_party_translations'], 1747 'grit_defines': ['-D', 'use_third_party_translations'],
1746 'locales': [ 1748 'locales': [
1747 'ast', 'bs', 'ca@valencia', 'en-AU', 'eo', 'eu', 'gl', 'hy', 'ia', 1749 'ast', 'bs', 'ca@valencia', 'en-AU', 'eo', 'eu', 'gl', 'hy', 'ia',
1748 'ka', 'ku', 'kw', 'ms', 'ug' 1750 'ka', 'ku', 'kw', 'ms', 'ug'
1749 ], 1751 ],
(...skipping 1502 matching lines...) Expand 10 before | Expand all | Expand 10 after
3252 'cflags': [ 3254 'cflags': [
3253 '-m32', 3255 '-m32',
3254 '-mmmx', 3256 '-mmmx',
3255 ], 3257 ],
3256 'ldflags': [ 3258 'ldflags': [
3257 '-m32', 3259 '-m32',
3258 ], 3260 ],
3259 }], 3261 }],
3260 ], 3262 ],
3261 }], 3263 }],
3264 ['target_arch=="x64"', {
3265 'target_conditions': [
3266 ['_toolset=="target"', {
3267 'conditions': [
3268 # Use gold linker for Android x64 target.
3269 ['OS=="android"', {
3270 'cflags': [
3271 '-fuse-ld=gold',
3272 ],
3273 'ldflags': [
3274 '-fuse-ld=gold',
3275 ],
3276 }],
3277 ],
3278 'cflags': [
3279 '-m64',
3280 '-march=x86-64',
3281 ],
3282 'ldflags': [
3283 '-m64',
3284 ],
3285 }],
3286 ],
3287 }],
3262 ['target_arch=="arm"', { 3288 ['target_arch=="arm"', {
3263 'target_conditions': [ 3289 'target_conditions': [
3264 ['_toolset=="target"', { 3290 ['_toolset=="target"', {
3265 'cflags_cc': [ 3291 'cflags_cc': [
3266 # The codesourcery arm-2009q3 toolchain warns at that the ABI 3292 # The codesourcery arm-2009q3 toolchain warns at that the ABI
3267 # has changed whenever it encounters a varargs function. This 3293 # has changed whenever it encounters a varargs function. This
3268 # silences those warnings, as they are not helpful and 3294 # silences those warnings, as they are not helpful and
3269 # clutter legitimate warnings. 3295 # clutter legitimate warnings.
3270 '-Wno-abi', 3296 '-Wno-abi',
3271 ], 3297 ],
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
3885 ], 3911 ],
3886 }], 3912 }],
3887 ['target_arch=="ia32"', { 3913 ['target_arch=="ia32"', {
3888 'cflags': [ 3914 'cflags': [
3889 '-target x86-linux-androideabi', 3915 '-target x86-linux-androideabi',
3890 ], 3916 ],
3891 'ldflags': [ 3917 'ldflags': [
3892 '-target x86-linux-androideabi', 3918 '-target x86-linux-androideabi',
3893 ], 3919 ],
3894 }], 3920 }],
3921 # Place holder for x64 support, not tested.
rmcilroy 2014/03/11 11:42:19 Add a todo associated with a bug here please (so t
3922 ['target_arch=="x64"', {
3923 'cflags': [
3924 '-target x86_64-linux-androideabi',
3925 ],
3926 'ldflags': [
3927 '-target x86_64-linux-androideabi',
3928 ],
3929 }],
3895 ], 3930 ],
3896 }], 3931 }],
3897 ['asan==1', { 3932 ['asan==1', {
3898 'cflags': [ 3933 'cflags': [
3899 # Android build relies on -Wl,--gc-sections removing 3934 # Android build relies on -Wl,--gc-sections removing
3900 # unreachable code. ASan instrumentation for globals inhibits 3935 # unreachable code. ASan instrumentation for globals inhibits
3901 # this and results in a library with unresolvable relocations. 3936 # this and results in a library with unresolvable relocations.
3902 # TODO(eugenis): find a way to reenable this. 3937 # TODO(eugenis): find a way to reenable this.
3903 '-mllvm -asan-globals=0', 3938 '-mllvm -asan-globals=0',
3904 ], 3939 ],
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
3998 ], 4033 ],
3999 'cflags': [ 4034 'cflags': [
4000 '-fno-stack-protector', 4035 '-fno-stack-protector',
4001 ], 4036 ],
4002 }], 4037 }],
4003 ], 4038 ],
4004 'target_conditions': [ 4039 'target_conditions': [
4005 ['_type=="executable"', { 4040 ['_type=="executable"', {
4006 'ldflags': [ 4041 'ldflags': [
4007 '-Bdynamic', 4042 '-Bdynamic',
4008 '-Wl,-dynamic-linker,/system/bin/linker',
rmcilroy 2014/03/11 11:42:19 This should probably be ok, but have you tested th
Zhenyu Liang 2014/03/12 10:27:23 Yes, I had tried with the original ndk in third_pa
4009 '-Wl,--gc-sections', 4043 '-Wl,--gc-sections',
4010 '-Wl,-z,nocopyreloc', 4044 '-Wl,-z,nocopyreloc',
4011 # crtbegin_dynamic.o should be the last item in ldflags. 4045 # crtbegin_dynamic.o should be the last item in ldflags.
4012 '<(android_ndk_lib)/crtbegin_dynamic.o', 4046 '<(android_ndk_lib)/crtbegin_dynamic.o',
4013 ], 4047 ],
4014 'libraries': [ 4048 'libraries': [
4015 # crtend_android.o needs to be the last item in libraries. 4049 # crtend_android.o needs to be the last item in libraries.
4016 # Do not add any libraries after this! 4050 # Do not add any libraries after this!
4017 '<(android_ndk_lib)/crtend_android.o', 4051 '<(android_ndk_lib)/crtend_android.o',
4018 ], 4052 ],
(...skipping 1033 matching lines...) Expand 10 before | Expand all | Expand 10 after
5052 # settings in target dicts. SYMROOT is a special case, because many other 5086 # settings in target dicts. SYMROOT is a special case, because many other
5053 # Xcode variables depend on it, including variables such as 5087 # Xcode variables depend on it, including variables such as
5054 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something 5088 # PROJECT_DERIVED_FILE_DIR. When a source group corresponding to something
5055 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the 5089 # like PROJECT_DERIVED_FILE_DIR is added to a project, in order for the
5056 # files to appear (when present) in the UI as actual files and not red 5090 # files to appear (when present) in the UI as actual files and not red
5057 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR, 5091 # red "missing file" proxies, the correct path to PROJECT_DERIVED_FILE_DIR,
5058 # and therefore SYMROOT, needs to be set at the project level. 5092 # and therefore SYMROOT, needs to be set at the project level.
5059 'SYMROOT': '<(DEPTH)/xcodebuild', 5093 'SYMROOT': '<(DEPTH)/xcodebuild',
5060 }, 5094 },
5061 } 5095 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698