From 4f7c145696a756c23af96ae92850f1d78464b0e0 Mon Sep 17 00:00:00 2001 From: LinZhihao-723 Date: Mon, 14 Jul 2025 17:45:32 -0400 Subject: [PATCH 1/5] Enable link-time optimization. --- components/core/CMakeLists.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index f71f7056ea..1c428db2ab 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -21,6 +21,15 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) endif() +include(CheckIPOSupported) +check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_CHECK_MSG) +if (IPO_SUPPORTED) + message(STATUS "Link-time optimization enabled.") + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) +else() + message(WARNING "Link-time optimization is not enabled: ${IPO_CHECK_MSG}") +endif() + set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # Set general compressor From 2cbe104715c3f58aa98a6de9cdf0eeec1aad4bdd Mon Sep 17 00:00:00 2001 From: LinZhihao-723 Date: Mon, 14 Jul 2025 18:02:27 -0400 Subject: [PATCH 2/5] Only enable cmake when it's building for release. --- components/core/CMakeLists.txt | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index 1c428db2ab..3b5ac24e8b 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -21,13 +21,18 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) endif() -include(CheckIPOSupported) -check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_CHECK_MSG) -if (IPO_SUPPORTED) - message(STATUS "Link-time optimization enabled.") - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) +if(CMAKE_BUILD_TYPE MATCHES "Release") + include(CheckIPOSupported) + check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_CHECK_MSG) + if(IPO_SUPPORTED) + message(STATUS "Link-time optimization enabled.") + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) + else() + message(WARNING "Link-time optimization is not enabled: ${IPO_CHECK_MSG}.") + endif() else() - message(WARNING "Link-time optimization is not enabled: ${IPO_CHECK_MSG}") + message(STATUS "Link-time optimization is disabled for non-Release builds.") + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF) endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) From 26c861b8ae0ed445c2e39be48929812fb7bf04eb Mon Sep 17 00:00:00 2001 From: LinZhihao-723 Date: Tue, 15 Jul 2025 19:48:39 -0400 Subject: [PATCH 3/5] Remove unnessary logs. --- components/core/CMakeLists.txt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index 3b5ac24e8b..174a708779 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -27,13 +27,8 @@ if(CMAKE_BUILD_TYPE MATCHES "Release") if(IPO_SUPPORTED) message(STATUS "Link-time optimization enabled.") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) - else() - message(WARNING "Link-time optimization is not enabled: ${IPO_CHECK_MSG}.") endif() else() - message(STATUS "Link-time optimization is disabled for non-Release builds.") - set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF) -endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) From c1eeceae8d847b0fa223dc397e65f9a57f3d80f3 Mon Sep 17 00:00:00 2001 From: LinZhihao-723 Date: Tue, 15 Jul 2025 20:06:28 -0400 Subject: [PATCH 4/5] Fix... --- components/core/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index 174a708779..133a2bcf60 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -28,7 +28,7 @@ if(CMAKE_BUILD_TYPE MATCHES "Release") message(STATUS "Link-time optimization enabled.") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) endif() -else() +endif() set(CMAKE_EXPORT_COMPILE_COMMANDS ON) From 8cf4e33471b50cd14e73761dcf438158791ebab5 Mon Sep 17 00:00:00 2001 From: Lin Zhihao <59785146+LinZhihao-723@users.noreply.github.com> Date: Thu, 24 Jul 2025 15:57:44 -0400 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: kirkrodrigues <2454684+kirkrodrigues@users.noreply.github.com> --- components/core/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/core/CMakeLists.txt b/components/core/CMakeLists.txt index 133a2bcf60..7c2f408a02 100644 --- a/components/core/CMakeLists.txt +++ b/components/core/CMakeLists.txt @@ -21,9 +21,9 @@ if (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) endif() -if(CMAKE_BUILD_TYPE MATCHES "Release") +if (CMAKE_BUILD_TYPE MATCHES "Release") include(CheckIPOSupported) - check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT IPO_CHECK_MSG) + check_ipo_supported(RESULT IPO_SUPPORTED OUTPUT) if(IPO_SUPPORTED) message(STATUS "Link-time optimization enabled.") set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)