# 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, and PPC64 (only x86 and ARMv7a).
  supports_subzero = current_cpu != "arm64" && current_cpu != "mips64el" && current_cpu != "ppc64"
}

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
}