mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-10-29 02:17:13 +08:00
- Use -fno-tree-vectorize and -fno-tree-slp-vectorize instead of Clang-only -fno-vectorize and -fno-slp-vectorize in CMakeLists.txt, riscv-clang.cmake, BUILD.gn, and BUILD.bazel for GCC and Clang compatibility. - Split row_rvv.cc and scale_rvv.cc into a dedicated libyuv_rvv target in BUILD.gn and define LIBYUV_RVV so callers in row.h and scale_row.h can dispatch to RVV kernels when built without global -march=rv64gcv. - Guard the x86 AVX512-BF16 vdpphps inline assembly probe in util/cpuid.c with __i386__ / __x86_64__. - Replace new/delete and new[]/delete[] with calloc/malloc/free in source/mjpeg_decoder.cc and util/yuvconvert.cc to avoid C++ standard library dependencies, and link libm for yuvconstants and libyuv_unittest in CMakeLists.txt. Test: cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. Bug: None Change-Id: I701c0625f2730e864806556213a5e013c931e2d6 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8464751 Reviewed-by: richard winterton <rrwinterton@gmail.com> Commit-Queue: Frank Barchard <fbarchard@google.com>
35 lines
1.5 KiB
Plaintext
35 lines
1.5 KiB
Plaintext
# 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_enable_rowwin = false
|
|
libyuv_use_neon = current_cpu == "arm64" || current_cpu == "arm"
|
|
libyuv_use_sve = current_cpu == "arm64"
|
|
|
|
# Restrict to (is_linux || is_android) to work around undefined symbol linker
|
|
# errors on Fuchsia, macOS, and compilation errors on Windows.
|
|
# TODO: bug 359006069 - Remove the restriction after the linker and
|
|
# compilation errors are fixed.
|
|
libyuv_use_sme = current_cpu == "arm64" && (is_linux || is_android)
|
|
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
|
|
libyuv_use_rvv = current_cpu == "riscv64" || current_cpu == "riscv32"
|
|
}
|