From 8667d1996ea6bf8e79e28c8a52643dc49df20398 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <2546789017@qq.com> Date: Tue, 13 Sep 2022 20:02:02 +0800 Subject: [PATCH] cmake: add some experimental flags, but commented out Uncomment out if they are verified to work well. Signed-off-by: Yuhang Zhao <2546789017@qq.com> --- src/core/cmakehelper.cmake | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/src/core/cmakehelper.cmake b/src/core/cmakehelper.cmake index 62bff77..28c1daf 100644 --- a/src/core/cmakehelper.cmake +++ b/src/core/cmakehelper.cmake @@ -32,7 +32,7 @@ function(setup_compile_params arg_target) QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_FOREACH QT_USE_QSTRINGBUILDER - QT_DEPRECATED_WARNINGS + QT_DEPRECATED_WARNINGS # Have no effect since 6.0 QT_DEPRECATED_WARNINGS_SINCE=0x070000 QT_WARN_DEPRECATED_UP_TO=0x070000 # Since 6.5 QT_DISABLE_DEPRECATED_BEFORE=0x070000 @@ -43,24 +43,41 @@ function(setup_compile_params arg_target) set(NTDDI_WIN10_CO 0x0A00000B) target_compile_definitions(${arg_target} PRIVATE _CRT_NON_CONFORMING_SWPRINTFS _CRT_SECURE_NO_WARNINGS - _ENABLE_EXTENDED_ALIGNED_STORAGE NOMINMAX UNICODE - _UNICODE WIN32_LEAN_AND_MEAN WINRT_LEAN_AND_MEAN + _CRT_SECURE_NO_DEPRECATE _CRT_NONSTDC_NO_WARNINGS + _CRT_NONSTDC_NO_DEPRECATE _ENABLE_EXTENDED_ALIGNED_STORAGE + NOMINMAX UNICODE _UNICODE WIN32_LEAN_AND_MEAN WINRT_LEAN_AND_MEAN WINVER=${_WIN32_WINNT_WIN10} _WIN32_WINNT=${_WIN32_WINNT_WIN10} _WIN32_IE=${_WIN32_WINNT_WIN10} NTDDI_VERSION=${NTDDI_WIN10_CO} ) target_compile_options(${arg_target} PRIVATE /utf-8 /W3 /WX # Cannot use /W4 here, Qt's own headers are not warning-clean. $<$:/JMC> - $<$>:/guard:cf /Gw /Gy /QIntel-jcc-erratum /Zc:inline> + $<$>:/guard:cf /Gw /Gy /QIntel-jcc-erratum /Zc:inline> # /guard:ehcont ? /Qspectre-load ? ) target_link_options(${arg_target} PRIVATE /WX # Make sure we don't use wrong parameters. - $<$>:/CETCOMPAT /GUARD:CF /OPT:REF /OPT:ICF> + $<$>:/CETCOMPAT /GUARD:CF /OPT:REF /OPT:ICF> # /GUARD:EHCONT ? ) else() target_compile_options(${arg_target} PRIVATE -Wall -Wextra -Werror + #$<$>:-ffunction-sections -fdata-sections -fcf-protection=full -Wa,-mno-branches-within-32B-boundaries> ) + #[[target_link_options(${arg_target} PRIVATE + $<$>:-Wl,--gc-sections> + ) + if(CLANG) + target_compile_options(${arg_target} PRIVATE + $<$>:-Xclang -cfguard -mretpoline> + ) + target_link_options(${arg_target} PRIVATE + $<$>:-z retpolineplt -z now> + ) + else() # GCC + target_compile_options(${arg_target} PRIVATE + $<$>:-mindirect-branch=thunk -mfunction-return=thunk -mindirect-branch-register -mindirect-branch-cs-prefix> + ) + endif()]] endif() endfunction()