# Copyright (c) 2015 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("//build/dotfile_settings.gni")

# The location of the build configuration file.
buildconfig = "//build/config/BUILDCONFIG.gn"

# The secondary source root is a parallel directory tree where
# GN build files are placed when they can not be placed directly
# in the source tree, e.g. for third party source trees.
secondary_source = "//build/secondary/"

# These are the targets to check headers for by default. The files in targets
# matching these patterns (see "gn help label_pattern" for format) will have
# their includes checked for proper dependencies when you run either
# "gn check" or "gn gen --check".
check_targets = [
  ":webrtc_common",
  "//api/*",
  "//audio/*",
  "//backup/*",
  "//call/*",
  "//common_audio/*",
  "//common_video/*",

  # TODO(bugs.webrtc.org/8850): re-enable when 'gn check' will be fixed.
  # "//examples/*",
  "//logging/*",
  "//media/*",
  "//modules/*",
  "//ortc/*",
  "//p2p/*",
  "//pc/*",
  "//rtc_base/*",
  "//rtc_tools/*",

  # TODO(bugs.webrtc.org/8850): Remove "/android" to re-enable on objc.
  "//sdk/android/*",
  "//stats/*",
  "//system_wrappers/*",
  "//test/*",
  "//video/*",

  # TODO(bugs.webrtc.org/8850): re-enable when libyuv 'gn check' will be fixed.
  # "//third_party/libyuv/*",
]

# These are the list of GN files that run exec_script. This whitelist exists
# to force additional review for new uses of exec_script, which is strongly
# discouraged except for gypi_to_gn calls.
exec_script_whitelist = build_dotfile_settings.exec_script_whitelist +
                        [ "//build_overrides/build.gni" ]

default_args = {
  # Webrtc does not support component builds because we are not using the
  # template "component" but we rely directly on "rtc_static_library" and
  # "rtc_shared_library". This means that we cannot use the chromium default
  # value for this argument.
  # This also means that the user can override this value using --args or
  # the args.gn file but this setting will be ignored because we don't support
  # component builds.
  is_component_build = false

  mac_sdk_min = "10.12"

  # http://bugs.webrtc.org/8570
  ios_deployment_target = "9.0"

  # The SDK API level, in contrast, is set by build/android/AndroidManifest.xml.
  android32_ndk_api_level = 16
  android64_ndk_api_level = 21

  # WebRTC does not want to switch to C++14 yet.
  use_cxx11 = true

  # WebRTC relies on Chromium's Android test infrastructure.
  use_cxx11_on_android = false

  # WebRTC does not provide the gflags dependency. Because libyuv uses it only
  # for unittests, it can be disabled (see third_party/libyuv/BUILD.gn)
  libyuv_use_gflags = false
}
