# Copyright 2017 The ANGLE 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. declare_args() { build_with_chromium = false ignore_elf32_limitations = true use_system_xcode = "" # If true, it assumes that //third_party/abseil-cpp is an available # dependency for googletest. gtest_enable_absl_printers = false } if (host_os == "mac" && use_system_xcode == "") { _result = exec_script("//build/mac/should_use_hermetic_xcode.py", [ 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 } enable_java_templates = true # Build with fewer Android dependencies limit_android_deps = true # Standalone ANGLE is used in places that are extremely performance sensitive, # such as the system graphics driver on Android. ANGLE validates arguments at # the API boundary and assumes that all bounds, et cetera are valid elsewhere # in internal code. # # Unfortunately, this means the compiler cannot optimize out the vast majority # of hardening checks. To ensure performance remains competitive, drop the # libc++ hardening checks, since ANGLE already makes no security guarantees in # these situations. if (is_win) { # TODO(https://crbug.com/1418717): ANGLE uses Chromium's abseil-cpp directory. # Since Abseil does not mark symbols as exported, Chromium uses an alternate # approach to scrape the symbols that need to be exported and generates .def # files that the ANGLE build reuses. # # However, these symbol names include libc++ types, and libc++ hardening # affects ABI, so ANGLE and Chromium's libc++ hardening modes need to remain # in sync on Windows. This is a bit of a hack but "OK" since the performance # concerns for standalone ANGLE builds are not relevant on Windows. enable_safe_libcxx = true } else if (is_linux) { # https://anglebug.com/8040: turning off safe_libcxx breaks TSAN enable_safe_libcxx = true } else { enable_safe_libcxx = false }