62 lines
2.3 KiB
Plaintext
62 lines
2.3 KiB
Plaintext
# 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
|
|
}
|