# Copyright 2016 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.

# Several dependencies of Chrome require a different min sdk when built
# as stand-alone projects. If this is ever not the case, these variables
# can be removed.
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=5453.
mac_sdk_min_build_override = "10.10"

# Variable that can be used to support multiple build scenarios, like having
# Chromium specific targets in a client project's GN file etc.
build_with_chromium = true

# Uncomment these to specify a different NDK location and version in
# non-Chromium builds.
# default_android_ndk_root = "//third_party/android_tools/ndk"
# default_android_ndk_version = "r10e"

# Some non-Chromium builds don't support building java targets.
enable_java_templates = true

# Some non-Chromium builds don't use Chromium's third_party/binutils.
linux_use_bundled_binutils_override = true

# Allows different projects to specify their own suppressions and blacklist
# files for sanitizer tools.
# asan_suppressions_file = "path/to/asan_suppressions.cc"
# asan_blacklist_path = "path/to/asan/blacklist.txt"
# asan_win_blacklist_path = "path/to/asan/blacklist_win.txt"
# lsan_suppressions_file = "path/to/lsan_suppressions.cc"
# tsan_suppressions_file = "path/to/tsan_suppressions.cc"
# tsan_blacklist_path = "path/to/tsan/ignores.txt"
# msan_blacklist_path = "path/to/msan/blacklist.txt"
# ubsan_blacklist_path = "path/to/ubsan/blacklist.txt"
# ubsan_vptr_blacklist_path = "path/to/ubsan/vptr_blacklist.txt"
# ubsan_security_blacklist_path = "path/to/ubsan/security_blacklist.txt"
# cfi_blacklist_path = "path/to/cfi/blacklist.txt"

# Uncomment these to specify a different lint suppressions file for android
# lint_suppressions_file = path/to/your/suppressions/file/suppressions.xml

declare_args() {
  # Android 32-bit non-component, non-clang builds cannot have symbol_level=2
  # due to 4GiB file size limit, see https://crbug.com/648948.
  # Set this flag to true to skip the assertion.
  ignore_elf32_limitations = false

  # Use the system install of Xcode for tools like ibtool, libtool, etc.
  # This does not affect the compiler. When this variable is false, targets will
  # instead use a hermetic install of Xcode. [The hermetic install can be
  # obtained with gclient sync after setting the environment variable
  # FORCE_MAC_TOOLCHAIN].
  use_system_xcode = ""
}

if (use_system_xcode == "") {
  _result = exec_script("//build/mac/should_use_hermetic_xcode.py",
                        [ target_os ],
                        "value")
  use_system_xcode = _result == 0
}
