From 4ad47c1180c0d3320e61725082712eb91ce3d8a7 Mon Sep 17 00:00:00 2001 From: takase1121 <20792268+takase1121@users.noreply.github.com> Date: Sat, 22 Mar 2025 18:49:15 +0800 Subject: [PATCH] build.sh: add LTO support (cherry picked from commit 3eab686fc16e836d05c28d352f45e1f14b8f2ebe) --- scripts/build.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/scripts/build.sh b/scripts/build.sh index 0908ab1..afdd108 100644 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -26,6 +26,8 @@ show_help() { echo " macOS: disabled when used with --bundle," echo " Windows: Implicit being the only option." echo "-r --release Compile in release mode." + echo "-L --lto [MODE] Enables Link-Time Optimization (LTO)." + echo " MODE: [default],thin" echo " --cross-platform PLATFORM Cross compile for this platform." echo " The script will find the appropriate" echo " cross file in 'resources/cross'." @@ -47,6 +49,8 @@ main() { local portable local pgo local patch_lua + local lto + local lto_mode local cross local cross_platform local cross_arch @@ -98,6 +102,13 @@ main() { patch_lua="true" shift ;; + -L|--lto) + lto="-Db_lto=true" + if [[ -n $2 ]] && [[ $2 != -* ]]; then + lto_mode="-Db_lto_mode=$2" + shift + fi + ;; --cross-arch) cross="true" cross_arch="$2" @@ -195,6 +206,8 @@ main() { $bundle \ $portable \ $pgo \ + $lto \ + $lto_mode \ "${build_dir}" meson compile -C "${build_dir}"