# 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")

if (target_os != "fuchsia") {
  import("//build/config/chrome_build.gni")
  import("//build/config/chromecast_build.gni")
  import("//build/config/sanitizers/sanitizers.gni")
} else {
  is_chrome_branded = false
  is_chromeos = false
  is_chromecast = false
  is_component_build = false
  is_posix = false
}

if (is_chrome_branded) {
  _default_ffmpeg_branding = "Chrome"
} else {
  _default_ffmpeg_branding = "Chromium"
}

if (is_chromeos) {
  _default_ffmpeg_branding = _default_ffmpeg_branding + "OS"
}
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, ChromiumOS, 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
}

assert(ffmpeg_branding == "Chromium" ||
       ffmpeg_branding == "Chrome" ||
       ffmpeg_branding == "ChromiumOS" ||
       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
}

# Android ia32 can't handle textrels and ffmpeg can't compile without them.
# http://crbug.com/559379
disable_ffmpeg_asm = is_android && current_cpu == "x86"

os_config = current_os
if ((is_linux || is_chromeos) && is_msan) {
  os_config = "linux-noasm"
  disable_ffmpeg_asm = true
} else if (is_chromeos) {
  os_config = "linux"
}
