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

Unified Diff: build/common.gypi

Issue 14065005: Introduce arm_version to allow building for armv5, v6 or v7. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 7 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « build/android/envsetup_functions.sh ('k') | skia/skia.gyp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/common.gypi
diff --git a/build/common.gypi b/build/common.gypi
index fa829b3b79c39e99d2ae16fc346aba09baeff34f..f1c181c74174b693687ed3e22d65db1211d03051 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -123,6 +123,9 @@
# build (0).
'inside_chromium_build%': 1,
+ # Set ARM architecture version.
+ 'arm_version%': 7,
+
'conditions': [
# Set default value of toolkit_views based on OS.
['OS=="win" or chromeos==1 or use_aura==1', {
@@ -190,6 +193,7 @@
'enable_message_center%': '<(enable_message_center)',
'use_default_render_theme%': '<(use_default_render_theme)',
'buildtype%': '<(buildtype)',
+ 'arm_version%': '<(arm_version)',
# Override branding to select the desired branding flavor.
'branding%': 'Chromium',
@@ -211,12 +215,13 @@
# Python version.
'python_ver%': '2.6',
- # Set ARM-v7 compilation flags
- 'armv7%': 0,
- # Set Neon compilation flags (only meaningful if armv7==1).
+ # Set NEON compilation flags.
'arm_neon%': 1,
+ # Detect NEON support at run-time.
+ 'arm_neon_optional%': 0,
+
# The system root for cross-compiles. Default: none.
'sysroot%': '',
@@ -424,6 +429,13 @@
'os_bsd%': 0,
}],
+ # Set armv7 for backward compatibility.
+ ['arm_version==7', {
+ 'armv7': 1,
+ }, {
+ 'armv7': 0,
+ }],
+
# NSS usage.
['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris") and use_openssl==0', {
'use_nss%': 1,
@@ -489,6 +501,8 @@
'enable_themes%': 0,
'proprietary_codecs%': 1,
'remoting%': 0,
+ 'arm_neon%': 0,
+ 'arm_neon_optional%': 1,
}],
# Enable autofill dialog for Android and Views-enabled platforms for now.
@@ -610,7 +624,6 @@
['OS=="linux" and target_arch=="arm" and chromeos==0', {
# Set some defaults for arm/linux chrome builds
- 'armv7%': 1,
'linux_breakpad%': 0,
'linux_use_tcmalloc%': 0,
# sysroot needs to be an absolute path otherwise it generates
@@ -721,8 +734,10 @@
'fastbuild%': '<(fastbuild)',
'dcheck_always_on%': '<(dcheck_always_on)',
'python_ver%': '<(python_ver)',
+ 'arm_version%': '<(arm_version)',
'armv7%': '<(armv7)',
'arm_neon%': '<(arm_neon)',
+ 'arm_neon_optional%': '<(arm_neon_optional)',
'sysroot%': '<(sysroot)',
'system_libdir%': '<(system_libdir)',
'component%': '<(component)',
@@ -938,16 +953,6 @@
# Set to 1 to link against gsettings APIs instead of using dlopen().
'linux_link_gsettings%': 0,
- # Set Thumb compilation flags.
- 'arm_thumb%': 0,
-
- # Set ARM fpu compilation flags (only meaningful if armv7==1 and
- # arm_neon==0).
- 'arm_fpu%': 'vfpv3',
-
- # Set ARM float abi compilation flag.
- 'arm_float_abi%': 'softfp',
-
# Enable use of OpenMAX DL FFT routines.
'use_openmax_dl_fft%': '<(use_openmax_dl_fft)',
@@ -1185,7 +1190,7 @@
}],
['target_arch=="arm"', {
'conditions': [
- ['armv7==0', {
+ ['arm_version<7', {
'android_app_abi%': 'armeabi',
}, {
'android_app_abi%': 'armeabi-v7a',
@@ -1604,6 +1609,45 @@
['branding=="Chrome" and (OS=="win" or OS=="mac" or chromeos==1)', {
'enable_rlz%': 1,
}],
+
+ # Set default compiler flags depending on ARM version.
+ ['arm_version==5 and android_webview_build==0', {
+ # Flags suitable for Android emulator
+ 'arm_arch%': 'armv5te',
+ 'arm_tune%': 'xscale',
+ 'arm_fpu%': '',
+ 'arm_float_abi%': 'soft',
+ 'arm_thumb%': 0,
+ }],
+ ['arm_version==6 and android_webview_build==0', {
+ 'arm_arch%': 'armv6',
+ 'arm_tune%': '',
+ 'arm_fpu%': '',
+ 'arm_float_abi%': 'soft',
+ 'arm_thumb%': 0,
+ }],
+ ['arm_version==7 and android_webview_build==0', {
+ 'arm_arch%': 'armv7-a',
+ 'arm_tune%': 'cortex-a8',
+ 'conditions': [
+ ['arm_neon==1', {
+ 'arm_fpu%': 'neon',
+ }, {
+ 'arm_fpu%': 'vfpv3-d16',
+ }],
+ ],
+ 'arm_float_abi%': 'softfp',
+ 'arm_thumb%': 1,
+ }],
+
+ ['android_webview_build==1', {
+ # The WebView build gets its cpu-specific flags from the Android build system.
+ 'arm_arch%': '',
+ 'arm_tune%': '',
+ 'arm_fpu%': '',
+ 'arm_float_abi%': '',
+ 'arm_thumb%': 0,
+ }],
],
# List of default apps to install in new profiles. The first list contains
@@ -2819,25 +2863,31 @@
'-Wno-abi',
],
'conditions': [
- ['arm_thumb==1 and android_webview_build==0', {
+ ['arm_arch!=""', {
'cflags': [
- '-mthumb',
- ]
+ '-march=<(arm_arch)',
+ ],
}],
- ['armv7==1 and android_webview_build==0', {
+ ['arm_tune!=""', {
'cflags': [
- '-march=armv7-a',
- '-mtune=cortex-a8',
- '-mfloat-abi=<(arm_float_abi)',
+ '-mtune=<(arm_tune)',
],
- 'conditions': [
- ['arm_neon==1', {
- 'cflags': [ '-mfpu=neon', ],
- }, {
- 'cflags': [ '-mfpu=<(arm_fpu)', ],
- }],
+ }],
+ ['arm_fpu!=""', {
+ 'cflags': [
+ '-mfpu=<(arm_fpu)',
],
}],
+ ['arm_float_abi!=""', {
+ 'cflags': [
+ '-mfloat-abi=<(arm_float_abi)',
+ ],
+ }],
+ ['arm_thumb==1', {
+ 'cflags': [
+ '-mthumb',
+ ]
+ }],
['OS=="android"', {
# Most of the following flags are derived from what Android
# uses by default when building for arm, reference for which
@@ -2863,23 +2913,9 @@
'-fuse-ld=gold',
],
'conditions': [
- ['arm_thumb==1 and android_webview_build==0', {
+ ['arm_thumb==1', {
'cflags': [ '-mthumb-interwork' ],
}],
- ['armv7==0 and android_webview_build==0', {
- # Flags suitable for Android emulator
- 'cflags': [
- '-march=armv5te',
- '-mtune=xscale',
- '-msoft-float',
- ],
- 'defines': [
- '__ARM_ARCH_5__',
- '__ARM_ARCH_5T__',
- '__ARM_ARCH_5E__',
- '__ARM_ARCH_5TE__',
- ],
- }],
['profiling==1', {
'cflags': [
'-marm', # Probably reduntant, but recommend by "perf" docs.
« no previous file with comments | « build/android/envsetup_functions.sh ('k') | skia/skia.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698