From c1370c48976076df8f80de0edcdc56c2f3f5a341 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao Date: Sat, 17 Jun 2023 12:34:30 +0800 Subject: [PATCH] cmake: minor change --- CMakeLists.txt | 2 ++ src/core/CMakeLists.txt | 3 +++ src/quick/CMakeLists.txt | 3 +++ src/widgets/CMakeLists.txt | 3 +++ 4 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index fdb1894..54b6a2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,7 @@ option(FRAMELESSHELPER_ENABLE_INTELJCC "Enable Intel JCC." OFF) option(FRAMELESSHELPER_ENABLE_CFGUARD "Enable Control Flow Guard (CFG)." OFF) option(FRAMELESSHELPER_EXAMPLES_STANDALONE "Build the demo projects as standalone CMake projects." OFF) cmake_dependent_option(FRAMELESSHELPER_ENABLE_UNIVERSAL_BUILD "macOS only: build universal library/example for Mac." ON APPLE OFF) +option(FRAMELESSHELPER_FORCE_LTO "Force enable LTO/LTCG even when building static libraries." OFF) find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Gui) find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Gui) @@ -221,5 +222,6 @@ if(NOT FRAMELESSHELPER_NO_SUMMARY) message("Enable Control Flow Guard (CFG): ${FRAMELESSHELPER_ENABLE_CFGUARD}") message("Build standalone demo projects: ${FRAMELESSHELPER_EXAMPLES_STANDALONE}") message("[macOS]: Build universal library/example: ${FRAMELESSHELPER_ENABLE_UNIVERSAL_BUILD}") + message("Force enable LTO: ${FRAMELESSHELPER_FORCE_LTO}") message("-----------------------------------------------------------------") endif() diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index bb0aa04..3c56acd 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -357,6 +357,9 @@ endif() if(FRAMELESSHELPER_ENABLE_CFGUARD) list(APPEND __extra_flags CFGUARD) endif() +if(FRAMELESSHELPER_FORCE_LTO) + list(APPEND __extra_flags FORCE_LTO) +endif() setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags}) if(NOT FRAMELESSHELPER_NO_INSTALL) set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake") diff --git a/src/quick/CMakeLists.txt b/src/quick/CMakeLists.txt index 51a24a0..af858e4 100644 --- a/src/quick/CMakeLists.txt +++ b/src/quick/CMakeLists.txt @@ -337,6 +337,9 @@ endif() if(FRAMELESSHELPER_ENABLE_CFGUARD) list(APPEND __extra_flags CFGUARD) endif() +if(FRAMELESSHELPER_FORCE_LTO) + list(APPEND __extra_flags FORCE_LTO) +endif() setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags}) if(NOT FRAMELESSHELPER_NO_INSTALL) set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake") diff --git a/src/widgets/CMakeLists.txt b/src/widgets/CMakeLists.txt index c22c5c6..8b55fae 100644 --- a/src/widgets/CMakeLists.txt +++ b/src/widgets/CMakeLists.txt @@ -228,6 +228,9 @@ endif() if(FRAMELESSHELPER_ENABLE_CFGUARD) list(APPEND __extra_flags CFGUARD) endif() +if(FRAMELESSHELPER_FORCE_LTO) + list(APPEND __extra_flags FORCE_LTO) +endif() setup_compile_params(TARGETS ${SUB_PROJ_NAME} ${__extra_flags}) if(NOT FRAMELESSHELPER_NO_INSTALL) set(__cmake_dir "${CMAKE_CURRENT_BINARY_DIR}/cmake")