From 83f2ba1998899e584ff3bb52bb97df74edec7f3f Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Wed, 17 Sep 2025 22:28:03 -0300 Subject: [PATCH] [cmake] fix building with Clang under Linux * based off: https://stackoverflow.com/questions/73011966/unable-to-compile-c-program-with-clang-14 Signed-off-by: Caio Oliveira --- CMakeLists.txt | 9 +++++++++ src/core/CMakeLists.txt | 4 ---- src/video_core/CMakeLists.txt | 4 ---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 673aab9e6e..729ffb3817 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,6 +200,15 @@ CMAKE_DEPENDENT_OPTION(YUZU_CMD "Compile the eden-cli executable" ON "ENABLE_SDL CMAKE_DEPENDENT_OPTION(YUZU_CRASH_DUMPS "Compile crash dump (Minidump) support" OFF "WIN32 OR LINUX" OFF) option(YUZU_ENABLE_LTO "Enable link-time optimization" OFF) +if(YUZU_ENABLE_LTO) + include(CheckIPOSupported) + check_ipo_supported(RESULT COMPILER_SUPPORTS_LTO) + if(COMPILER_SUPPORTS_LTO) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON) + else() + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION OFF) + endif() +endif() option(YUZU_DOWNLOAD_TIME_ZONE_DATA "Always download time zone binaries" ON) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 4d9566a60f..690c03b0d9 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1276,8 +1276,4 @@ if (YUZU_USE_PRECOMPILED_HEADERS) target_precompile_headers(core PRIVATE precompiled_headers.h) endif() -if (YUZU_ENABLE_LTO) - set_property(TARGET core PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) -endif() - create_target_directory_groups(core) diff --git a/src/video_core/CMakeLists.txt b/src/video_core/CMakeLists.txt index 3c2473266a..33b642ded1 100644 --- a/src/video_core/CMakeLists.txt +++ b/src/video_core/CMakeLists.txt @@ -398,10 +398,6 @@ if (YUZU_USE_PRECOMPILED_HEADERS) target_precompile_headers(video_core PRIVATE precompiled_headers.h) endif() -if (YUZU_ENABLE_LTO) - set_property(TARGET video_core PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE) -endif() - if (ANDROID AND ARCHITECTURE_arm64) target_link_libraries(video_core PRIVATE adrenotools) endif()