Further reduce size (LTO on macOS, more aggressive symbol stripping)

This commit is contained in:
Frankie Dintino 2025-04-23 15:13:06 -04:00
parent 6c918a02b8
commit 5573242126
No known key found for this signature in database
GPG Key ID: 97E295AACFBABD9E

View File

@ -111,11 +111,21 @@ function build_libavif {
local build_type=MinSizeRel
local lto=ON
local libavif_cmake_flags=()
if [ -n "$IS_MACOS" ]; then
lto=OFF
elif [[ "$MB_ML_VER" == 2014 ]] && [[ "$PLAT" == "x86_64" ]]; then
libavif_cmake_flags+=(
-DCMAKE_C_FLAGS_MINSIZEREL="-Oz -DNDEBUG -flto " \
-DCMAKE_CXX_FLAGS_MINSIZEREL="-Oz -DNDEBUG -flto" \
-DCMAKE_SHARED_LINKER_FLAGS_INIT="-Wl,-S,-x,-dead_strip_dylibs" \
)
else
if [[ "$MB_ML_VER" == 2014 ]] && [[ "$PLAT" == "x86_64" ]]; then
build_type=Release
fi
libavif_cmake_flags+=(-DCMAKE_SHARED_LINKER_FLAGS_INIT="-Wl,--strip-all,-z,relro,-z,now")
fi
local out_dir=$(fetch_unpack https://github.com/AOMediaCodec/libavif/archive/refs/tags/v$LIBAVIF_VERSION.tar.gz libavif-$LIBAVIF_VERSION.tar.gz)
# CONFIG_AV1_DECODER=0 is a flag for libaom (included as a subproject of
@ -136,7 +146,10 @@ function build_libavif {
-DAVIF_CODEC_AOM_DECODE=OFF \
-DAVIF_CODEC_DAV1D=LOCAL \
-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=$lto \
-DCMAKE_C_VISIBILITY_PRESET=hidden \
-DCMAKE_CXX_VISIBILITY_PRESET=hidden \
-DCMAKE_BUILD_TYPE=$build_type \
"${libavif_cmake_flags[@]}" \
. \
&& make install)
touch libavif-stamp