Skip to content

Commit 58d285a

Browse files
authored
fix: patch libyuv CMakeLists for compatibility with gcc 10 (#2660)
1 parent 6b31024 commit 58d285a

File tree

3 files changed

+23
-0
lines changed

3 files changed

+23
-0
lines changed

cmake/Modules/LocalLibyuv.cmake

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ else()
4040
GIT_REPOSITORY "https://chromium.googlesource.com/libyuv/libyuv"
4141
BINARY_DIR "${LIBYUV_BINARY_DIR}"
4242
GIT_TAG "${AVIF_LIBYUV_TAG}"
43+
PATCH_COMMAND git apply --ignore-whitespace "${AVIF_SOURCE_DIR}/ext/libyuv.patch"
4344
UPDATE_COMMAND ""
4445
)
4546

ext/libyuv.cmd

+2
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ cd libyuv
1919
: # It can be looked up at https://source.chromium.org/chromium/chromium/src/+/main:DEPS?q=libyuv.
2020
git checkout ccdf87034
2121

22+
git apply --ignore-whitespace ../libyuv.patch
23+
2224
mkdir build
2325
cd build
2426

ext/libyuv.patch

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
diff --git a/CMakeLists.txt b/CMakeLists.txt
2+
index 5df76856..eae0b729 100644
3+
--- a/CMakeLists.txt
4+
+++ b/CMakeLists.txt
5+
@@ -112,13 +112,13 @@ if(NOT MSVC)
6+
${ly_src_dir}/rotate_neon64.cc
7+
${ly_src_dir}/row_neon64.cc
8+
${ly_src_dir}/scale_neon64.cc)
9+
- target_compile_options(${ly_lib_name}_neon64 PRIVATE -march=armv8-a+dotprod+i8mm)
10+
+ target_compile_options(${ly_lib_name}_neon64 PRIVATE -march=armv8.2-a+dotprod+i8mm)
11+
list(APPEND ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_neon64>)
12+
13+
# Enable AArch64 SVE kernels.
14+
add_library(${ly_lib_name}_sve OBJECT
15+
${ly_src_dir}/row_sve.cc)
16+
- target_compile_options(${ly_lib_name}_sve PRIVATE -march=armv9-a+sve2)
17+
+ target_compile_options(${ly_lib_name}_sve PRIVATE -march=armv8.5-a+sve2)
18+
list(APPEND ly_lib_parts $<TARGET_OBJECTS:${ly_lib_name}_sve>)
19+
20+
set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})

0 commit comments

Comments
 (0)