1
0
Fork 0

Make target_*_options_if_exists actually work

This commit is contained in:
Ilya Fedin 2022-09-30 11:03:52 +04:00 committed by John Preston
parent 32257877e0
commit cd12cb93ea
3 changed files with 11 additions and 6 deletions

View file

@ -4,7 +4,7 @@
# For license and copyright information please follow this link: # For license and copyright information please follow this link:
# https://github.com/desktop-app/legal/blob/master/LEGAL # https://github.com/desktop-app/legal/blob/master/LEGAL
target_compile_options_if_exists(common_options target_compile_options(common_options
INTERFACE INTERFACE
$<$<NOT:$<CONFIG:Debug>>:-fno-strict-aliasing> $<$<NOT:$<CONFIG:Debug>>:-fno-strict-aliasing>
-Wno-deprecated # implicit capture of 'this' via '[=]' is deprecated in C++20 -Wno-deprecated # implicit capture of 'this' via '[=]' is deprecated in C++20
@ -18,11 +18,14 @@ INTERFACE
) )
if (DESKTOP_APP_SPECIAL_TARGET) if (DESKTOP_APP_SPECIAL_TARGET)
target_compile_options_if_exists(common_options target_compile_options(common_options
INTERFACE INTERFACE
$<$<NOT:$<CONFIG:Debug>>:-Ofast> $<$<NOT:$<CONFIG:Debug>>:-Ofast>
$<$<NOT:$<CONFIG:Debug>>:-g> $<$<NOT:$<CONFIG:Debug>>:-g>
$<$<NOT:$<CONFIG:Debug>>:-flto> $<$<NOT:$<CONFIG:Debug>>:-flto>
)
target_compile_options_if_exists(common_options
INTERFACE
-fstack-protector-all -fstack-protector-all
-fstack-clash-protection -fstack-clash-protection
-pipe -pipe

View file

@ -18,8 +18,9 @@ function(target_compile_options_if_exists target_name)
if (${entry} STREQUAL "PRIVATE" OR ${entry} STREQUAL "PUBLIC" OR ${entry} STREQUAL "INTERFACE") if (${entry} STREQUAL "PRIVATE" OR ${entry} STREQUAL "PUBLIC" OR ${entry} STREQUAL "INTERFACE")
set(writing_now ${entry}) set(writing_now ${entry})
else() else()
check_cxx_compiler_flag(${entry} flag_exists) string(MAKE_C_IDENTIFIER ${entry} entry_identifier)
if (flag_exists) check_cxx_compiler_flag(${entry} DESKTOP_APP_${entry_identifier}_EXISTS)
if (DESKTOP_APP_${entry_identifier}_EXISTS)
if ("${writing_now}" STREQUAL "PRIVATE") if ("${writing_now}" STREQUAL "PRIVATE")
list(APPEND private_options ${entry}) list(APPEND private_options ${entry})
elseif ("${writing_now}" STREQUAL "PUBLIC") elseif ("${writing_now}" STREQUAL "PUBLIC")

View file

@ -18,8 +18,9 @@ function(target_link_options_if_exists target_name)
if (${entry} STREQUAL "PRIVATE" OR ${entry} STREQUAL "PUBLIC" OR ${entry} STREQUAL "INTERFACE") if (${entry} STREQUAL "PRIVATE" OR ${entry} STREQUAL "PUBLIC" OR ${entry} STREQUAL "INTERFACE")
set(writing_now ${entry}) set(writing_now ${entry})
else() else()
check_cxx_compiler_flag(${entry} flag_exists) string(MAKE_C_IDENTIFIER ${entry} entry_identifier)
if (flag_exists) check_cxx_compiler_flag(${entry} DESKTOP_APP_${entry_identifier}_EXISTS)
if (DESKTOP_APP_${entry_identifier}_EXISTS)
if ("${writing_now}" STREQUAL "PRIVATE") if ("${writing_now}" STREQUAL "PRIVATE")
list(APPEND private_options ${entry}) list(APPEND private_options ${entry})
elseif ("${writing_now}" STREQUAL "PUBLIC") elseif ("${writing_now}" STREQUAL "PUBLIC")