From 5805fcbc6086d7b37cae651e8743b33aefffc754 Mon Sep 17 00:00:00 2001 From: star9029 Date: Fri, 18 Apr 2025 23:29:39 +0800 Subject: [PATCH 1/2] Improve cmake lto config --- xmake/modules/package/tools/cmake.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index c1eed339a0b..281a851eb3b 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -946,6 +946,10 @@ function _get_configs(package, configs, opt) _get_configs_for_generic(package, configs, opt) end + if not opt._configs_str:find("CMAKE_INTERPROCEDURAL_OPTIMIZATION", 1, true) then + table.insert(configs, "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=" .. (package:config("lto") and "ON" or "OFF")) + end + -- fix error for cmake 4.x -- e.g. Compatibility with CMake < 3.5 has been removed from CMake. if _get_cmake_version() and _get_cmake_version():ge("4.0") then From 426374a52c39e6d712422239c319a2743b81de0e Mon Sep 17 00:00:00 2001 From: star9029 Date: Tue, 22 Apr 2025 21:53:37 +0800 Subject: [PATCH 2/2] always cmkae_lto off --- xmake/modules/package/tools/cmake.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xmake/modules/package/tools/cmake.lua b/xmake/modules/package/tools/cmake.lua index 281a851eb3b..c83e5472394 100644 --- a/xmake/modules/package/tools/cmake.lua +++ b/xmake/modules/package/tools/cmake.lua @@ -947,7 +947,7 @@ function _get_configs(package, configs, opt) end if not opt._configs_str:find("CMAKE_INTERPROCEDURAL_OPTIMIZATION", 1, true) then - table.insert(configs, "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=" .. (package:config("lto") and "ON" or "OFF")) + table.insert(configs, "-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=OFF") end -- fix error for cmake 4.x