Index: build/common.gypi |
diff --git a/build/common.gypi b/build/common.gypi |
index 0390953622ee8dfb2c8a90571dfbc15d8b83d2ef..f5ab488ee30bdf6aca9595fda27bc7ba3e9b319c 100644 |
--- a/build/common.gypi |
+++ b/build/common.gypi |
@@ -21,6 +21,9 @@ |
# Whether we're building a ChromeOS build. |
'chromeos%': 0, |
+ # Whether we're building the cast (chromecast) shell |
+ 'chromecast%': 0, |
+ |
# Whether or not we are using the Aura windowing framework. |
'use_aura%': 0, |
@@ -47,6 +50,7 @@ |
}, |
# Copy conditionally-set variables out one scope. |
'chromeos%': '<(chromeos)', |
+ 'chromecast%': '<(chromecast)', |
'use_aura%': '<(use_aura)', |
'use_ash%': '<(use_ash)', |
'use_cras%': '<(use_cras)', |
@@ -92,6 +96,11 @@ |
'use_aura%': 1, |
}], |
+ ['chromecast==1', { |
+ 'embedded%': 1, |
+ 'use_ozone%': 1, |
+ }], |
+ |
# Ozone uses Aura. |
['use_ozone==1', { |
'use_aura%': 1, |
@@ -109,12 +118,6 @@ |
'use_ozone%': 1, |
}], |
- ['embedded==1', { |
- 'use_system_fontconfig%': 0, |
- }, { |
- 'use_system_fontconfig%': 1, |
- }], |
- |
['OS=="android"', { |
'target_arch%': 'arm', |
}, { |
@@ -126,6 +129,7 @@ |
}, |
# Copy conditionally-set variables out one scope. |
'chromeos%': '<(chromeos)', |
+ 'chromecast%': '<(chromecast)', |
'desktop_linux%': '<(desktop_linux)', |
'use_aura%': '<(use_aura)', |
'use_ash%': '<(use_ash)', |
@@ -134,7 +138,6 @@ |
'embedded%': '<(embedded)', |
'use_openssl%': '<(use_openssl)', |
'use_openssl_certs%': '<(use_openssl_certs)', |
- 'use_system_fontconfig%': '<(use_system_fontconfig)', |
'enable_viewport%': '<(enable_viewport)', |
'enable_hidpi%': '<(enable_hidpi)', |
'buildtype%': '<(buildtype)', |
@@ -236,6 +239,7 @@ |
# Copy conditionally-set variables out one scope. |
'chromeos%': '<(chromeos)', |
+ 'chromecast%': '<(chromecast)', |
'host_arch%': '<(host_arch)', |
'target_arch%': '<(target_arch)', |
'target_subarch%': '<(target_subarch)', |
@@ -250,7 +254,6 @@ |
'embedded%': '<(embedded)', |
'use_openssl%': '<(use_openssl)', |
'use_openssl_certs%': '<(use_openssl_certs)', |
- 'use_system_fontconfig%': '<(use_system_fontconfig)', |
'enable_viewport%': '<(enable_viewport)', |
'enable_hidpi%': '<(enable_hidpi)', |
'android_webview_build%': '<(android_webview_build)', |
@@ -709,9 +712,9 @@ |
}], |
# Android OS includes support for proprietary codecs regardless of |
- # building Chromium or Google Chrome. We also ship Google Chrome with |
- # proprietary codecs. |
- ['OS=="android" or branding=="Chrome"', { |
+ # building Chromium or Google Chrome. We also ship Google Chrome and |
+ # Chromecast with proprietary codecs. |
+ ['OS=="android" or branding=="Chrome" or chromecast==1', { |
'proprietary_codecs%': 1, |
}, { |
'proprietary_codecs%': 0, |
@@ -924,10 +927,10 @@ |
}], |
# By default, use ICU data file (icudtl.dat) on all platforms |
- # except when building Android WebView. |
+ # except when building Android WebView or Chromecast. |
# TODO(jshin): Handle 'use_system_icu' on Linux (Chromium). |
# Set the data reduction proxy origin for Android Webview. |
- ['android_webview_build==0', { |
+ ['android_webview_build==0 and chromecast==0', { |
'icu_use_data_file_flag%' : 1, |
'spdy_proxy_auth_origin%': '', |
'data_reduction_proxy_probe_url%': '', |
@@ -1023,12 +1026,12 @@ |
'use_ozone%': '<(use_ozone)', |
'use_ozone_evdev%': '<(use_ozone_evdev)', |
'use_clipboard_aurax11%': '<(use_clipboard_aurax11)', |
- 'use_system_fontconfig%': '<(use_system_fontconfig)', |
'desktop_linux%': '<(desktop_linux)', |
'use_x11%': '<(use_x11)', |
'use_gnome_keyring%': '<(use_gnome_keyring)', |
'linux_fpic%': '<(linux_fpic)', |
'chromeos%': '<(chromeos)', |
+ 'chromecast%': '<(chromecast)', |
'enable_viewport%': '<(enable_viewport)', |
'enable_hidpi%': '<(enable_hidpi)', |
'use_xi2_mt%':'<(use_xi2_mt)', |
@@ -1750,6 +1753,24 @@ |
# Copy it out one scope. |
'android_webview_build%': '<(android_webview_build)', |
}], # OS=="android" |
+ ['embedded==1', { |
+ 'use_system_fontconfig%': 0, |
+ }, { |
+ 'use_system_fontconfig%': 1, |
+ }], |
+ ['chromecast==1', { |
+ 'ffmpeg_branding%': 'Chrome', |
+ 'ozone_platform_ozonex%': 1, |
+ 'conditions': [ |
+ ['target_arch=="arm"', { |
+ 'arm_arch%': '', |
+ 'arm_tune%': 'cortex-a9', |
+ 'arm_thumb%': 1, |
+ 'enable_mpeg2ts_stream_parser%': 1, |
+ 'video_hole%': 1, |
+ }], |
+ ], |
+ }], |
['android_webview_build==1', { |
# When building the WebView in the Android tree, jarjar will remap all |
# the class names, so the JNI generator needs to know this. |
@@ -1877,7 +1898,7 @@ |
], |
}], |
- ['os_posix==1 and chromeos==0 and OS!="android" and OS!="ios"', { |
+ ['os_posix==1 and chromeos==0 and OS!="android" and OS!="ios" and embedded==0', { |
'use_cups%': 1, |
}, { |
'use_cups%': 0, |
@@ -2288,6 +2309,8 @@ |
'component%': '<(component)', |
+ 'chromecast%': '<(chromecast)', |
+ |
# See http://msdn.microsoft.com/en-us/library/aa652360(VS.71).aspx |
'win_release_Optimization%': '2', # 2 = /Os |
'win_debug_Optimization%': '0', # 0 = /Od |
@@ -2668,6 +2691,22 @@ |
}], |
], # win_z7!=0 |
}], # OS==win |
+ ['chromecast==1', { |
+ 'defines': [ |
+ 'LOG_DISABLED=0', |
+ ], |
+ 'conditions': [ |
+ ['target_arch=="arm"', { |
+ 'defines': [ |
+ # TODO(lcwu): Work around an error when building Chromium |
+ # with gcc-4.5.3 (e.g. v8/src/platform-linux.cc). Remove |
+ # this define once the toolchain is updated. |
+ # See crbug.com/388933. |
+ '__SOFTFP', |
+ ], |
+ }], |
+ ], |
+ }], |
['enable_task_manager==1', { |
'defines': [ |
'ENABLE_TASK_MANAGER=1', |
@@ -3717,6 +3756,33 @@ |
}], |
], |
}], |
+ ['chromecast==1', { |
+ 'cflags': [ |
+ # We set arm_arch to "" so that -march compiler option |
+ # is not set. Otherwise a gcc bug that would complain |
+ # about it conflicting with '-mcpu=cortex-a9'. The flag |
+ # '-march=armv7-a' is actually redundant anyway because |
+ # it is enabled by default when we built the toolchain. |
+ # And using '-mcpu=cortex-a9' should be sufficient. |
+ '-mcpu=cortex-a9', |
+ '-funwind-tables', |
+ # Breakpad requires symbols with debugging information |
+ '-g', |
+ ], |
+ 'ldflags': [ |
+ # We want to statically link libstdc++/libgcc_s. |
+ '-static-libstdc++', |
+ '-static-libgcc', |
+ ], |
+ 'cflags!': [ |
+ # Some components in Chromium (e.g. v8, skia, ffmpeg) |
+ # define their own cflags for arm builds that could |
+ # conflict with the flags we set here (e.g. |
+ # '-mcpu=cortex-a9'). Remove these flags explicitly. |
+ '-march=armv7-a', |
+ '-mtune=cortex-a8', |
+ ], |
+ }], |
], |
}], |
], |