# Copyright 2016 The LibYuv 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 in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS. All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.

import("//build/config/arm.gni")
import("//build/config/loongarch64.gni")
import("//build/config/mips.gni")
import("//build_overrides/build.gni")

declare_args() {
  libyuv_include_tests = !build_with_chromium
  libyuv_disable_jpeg = false
  libyuv_disable_rvv = false
  libyuv_use_neon =
      current_cpu == "arm64" ||
      (current_cpu == "arm" && (arm_use_neon || arm_optionally_use_neon))
  libyuv_use_msa =
      (current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_msa
  libyuv_use_mmi =
      (current_cpu == "mips64el" || current_cpu == "mipsel") && mips_use_mmi
  libyuv_use_lsx =
      (current_cpu == "loong64") && loongarch64_use_lsx
  libyuv_use_lasx =
      (current_cpu == "loong64") && loongarch64_use_lasx
}
