| # Copyright 2014 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/arm.gni") |
| import("//build/config/chrome_build.gni") |
| import("//build/config/chromecast_build.gni") |
| import("//build/config/sanitizers/sanitizers.gni") |
| |
| if (is_chrome_branded) { |
| _default_ffmpeg_branding = "Chrome" |
| } else { |
| _default_ffmpeg_branding = "Chromium" |
| } |
| |
| if (is_chromeos && is_chrome_branded) { |
| _default_ffmpeg_branding = "ChromeOS" |
| } |
| |
| if (is_chromecast) { |
| if (is_android) { |
| _default_ffmpeg_branding = "Chrome" |
| } else { |
| # TODO(alokp): What audio codecs does Chromecast want here? Sort |
| # out and add configs if necessary. http://crbug.com/570754 |
| _default_ffmpeg_branding = "ChromeOS" |
| } |
| } |
| |
| declare_args() { |
| # Controls whether we build the Chromium or Google Chrome version of FFmpeg. |
| # The Google Chrome version contains additional codecs. Typical values are |
| # Chromium, Chrome, and ChromeOS. |
| ffmpeg_branding = _default_ffmpeg_branding |
| |
| # Set true to build ffmpeg as a shared library. NOTE: this means we should |
| # always consult is_component_ffmpeg instead of is_component_build for |
| # ffmpeg targets. This helps linux chromium packagers that swap out our |
| # ffmpeg.so with their own. See discussion here |
| # https://groups.google.com/a/chromium.org/forum/#!msg/chromium-packagers/R5rcZXWxBEQ/B6k0zzmJbvcJ |
| is_component_ffmpeg = is_component_build |
| |
| # Set to true to force the use of ffmpeg's stdatomic fallback code. This code |
| # is unsafe and does not implement atomics properly. https://crbug.com/161723. |
| # |
| # Windows and GCC prior to 4.9 lack stdatomic.h. |
| # |
| # This is also useful for developers who use icecc, which relies upon |
| # clang's -frewrite-includes flag which is broken with #include_next |
| # directives as used in chromium's clang stdatomic.h. |
| # Some background: https://bugs.llvm.org/show_bug.cgi?id=26828 |
| ffmpeg_use_unsafe_atomics = false |
| } |
| |
| assert(ffmpeg_branding == "Chromium" || |
| ffmpeg_branding == "Chrome" || |
| ffmpeg_branding == "ChromeOS") |
| |
| if (current_cpu == "x86") { |
| ffmpeg_arch = "ia32" |
| } else if (current_cpu == "arm" && arm_version >= 7 && arm_use_neon) { |
| ffmpeg_arch = "arm-neon" |
| } else { |
| ffmpeg_arch = current_cpu |
| } |
| |
| os_config = current_os |
| if ((is_linux || is_chromeos) && is_msan) { |
| os_config = "linux-noasm" |
| } else if (is_chromeos || is_fuchsia) { |
| os_config = "linux" |
| } else if (is_win && !is_clang) { |
| os_config = "win-msvc" |
| } |