File: build.gni

package info (click to toggle)
webkit2gtk 2.51.2-1
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 457,708 kB
  • sloc: cpp: 3,884,629; javascript: 198,661; ansic: 165,298; python: 49,171; asm: 21,849; ruby: 18,095; perl: 16,914; xml: 4,623; sh: 2,397; yacc: 2,356; java: 2,019; lex: 1,330; pascal: 372; makefile: 197
file content (64 lines) | stat: -rw-r--r-- 2,408 bytes parent folder | download | duplicates (19)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# 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

  # Set to default here so that it can be set via gn args
  use_cxx17 = 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/40096878: turning off safe_libcxx breaks TSAN
  enable_safe_libcxx = true
} else {
  enable_safe_libcxx = false
}