| # 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. |
| |
| import("//build/config/gclient_args.gni") |
| |
| # Uncomment these to specify a different NDK location and version in |
| # non-Chromium builds. |
| # default_android_ndk_root = "//third_party/android_ndk" |
| # default_android_ndk_version = "r10e" |
| |
| # Some non-Chromium builds don't support building java targets. |
| enable_java_templates = true |
| |
| # Features used by //base/trace_event and //services/tracing. |
| declare_args() { |
| # Tracing support requires //third_party/perfetto, which is not available in |
| # libchrome (CrOS's version of //base). This flag can disable tracing support |
| # altogether, in which case all tracing instrumentation in //base becomes a |
| # no-op. |
| # TODO(crbug/1065905): Add dependency on perfetto to support typed events. |
| enable_base_tracing = true |
| |
| # Switches the TRACE_EVENT instrumentation from base's TraceLog implementation |
| # to //third_party/perfetto's client library. Not implemented yet, currently a |
| # no-op to set up trybot infrastructure. |
| # TODO(crbug/1006769): Switch to perfetto's client library. |
| use_perfetto_client_library = false |
| } |
| |
| # 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" |
| |
| 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 for target_os mac only]. |
| use_system_xcode = "" |
| } |
| |
| if (host_os == "mac" && use_system_xcode == "") { |
| _result = exec_script("//build/mac/should_use_hermetic_xcode.py", |
| [ |
| "--xcode-version=$mac_xcode_version", |
| target_os, |
| ], |
| "value") |
| |
| assert(_result != 2, |
| "Do not allow building targets with the default" + |
| "hermetic toolchain if the minimum OS version is not met.") |
| assert(_result != 3, |
| "iOS does not support building with a hermetic toolchain. " + |
| "Please install Xcode.") |
| |
| use_system_xcode = _result != 1 |
| } |