aboutsummaryrefslogtreecommitdiff
path: root/src/Reactor/reactor.gni
blob: 04fad6f8119aee6e005febb2b479cef3ce160607 (plain)
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
# Copyright (c) 2020 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.

# This file contains configs that need to be added or removed to all
# SwiftShader libraries

import("../swiftshader.gni")
import("//build_overrides/build.gni")

declare_args() {
  # Subzero doesn't support ARM64, MIPS64, PPC64, and RISCV64 (only x86 and ARMv7a).
  supports_subzero = current_cpu != "arm64" && current_cpu != "mips64el" && current_cpu != "ppc64" && current_cpu != "riscv64"
}

declare_args() {
  supports_llvm = is_linux || is_chromeos || is_fuchsia || is_win || is_android
    # LLVM uses C++17 features which require macOS 10.12, while Chrome's minimum platform for x86 is 10.11.
    # Don't build LLVM on Mac, unless we have to. This only happens on ARM64 devices, which launched with 11.0.
    # TODO(b/174843857): Remove check for !supports_subzero once Chrome supports macOS 10.12
    || (is_mac && !supports_subzero)
}

declare_args() {
  # Subzero produces much smaller binaries, so always use it when available,
  # except for MSan builds which only get Reactor code instrumented with LLVM.
  use_swiftshader_with_subzero = supports_subzero && !is_msan
}