From 976fa5134aea52741df7b25a196fa36251dc932f Mon Sep 17 00:00:00 2001 From: Alexandru Croitor Date: Thu, 18 Jun 2020 10:07:39 +0200 Subject: CMake: Use intelcet flags for bootstrap and qmake This should fix build failures on Ubuntu 20.04. Amends fa98adbd04de9d44ce921436b92589a41f285dcd Change-Id: Iff399faff0cf06f5b88d756b1f632b8798069578 Reviewed-by: Joerg Bornemann --- cmake/QtBuild.cmake | 19 +++++++++++++++++++ qmake/CMakeLists.txt | 1 + src/tools/bootstrap/CMakeLists.txt | 1 + 3 files changed, 21 insertions(+) diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index ebb4841844..95a84f7fc0 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -1494,6 +1494,25 @@ function(qt_internal_apply_gc_binaries target visibility) endif() endfunction() +function(qt_internal_apply_intel_cet target visibility) + if(NOT QT_FEATURE_intelcet) + return() + endif() + + set(possible_visibilities PRIVATE INTERFACE PUBLIC) + list(FIND possible_visibilities "${visibility}" known_visibility) + if (known_visibility EQUAL "-1") + message(FATAL_ERROR "Visibitily setting must be one of PRIVATE, INTERFACE or PUBLIC.") + endif() + + if(GCC) + set(flags "-mshstk") + endif() + if(flags) + target_compile_options("${target}" ${visibility} "${flags}") + endif() +endfunction() + function(qt_internal_add_linker_version_script target) qt_parse_all_arguments(arg "qt_internal_add_linker" "INTERNAL" "" "PRIVATE_HEADERS" ${ARGN}) diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt index efc6c81da4..9931a2e14a 100644 --- a/qmake/CMakeLists.txt +++ b/qmake/CMakeLists.txt @@ -274,3 +274,4 @@ qt_internal_apply_gc_binaries(${target_name} PRIVATE) # special case qt_enable_msvc_cplusplus_define(${target_name} PUBLIC) # special case qt_skip_warnings_are_errors(${target_name}) # special case +qt_internal_apply_intel_cet(Bootstrap PUBLIC) # special case diff --git a/src/tools/bootstrap/CMakeLists.txt b/src/tools/bootstrap/CMakeLists.txt index 8b3a6e96d0..f3889008a9 100644 --- a/src/tools/bootstrap/CMakeLists.txt +++ b/src/tools/bootstrap/CMakeLists.txt @@ -265,4 +265,5 @@ qt_internal_apply_gc_binaries(Bootstrap PUBLIC) set_target_properties(Bootstrap PROPERTIES AUTOMOC OFF AUTOUIC OFF AUTORCC OFF) qt_internal_add_target_aliases(Bootstrap) qt_enable_msvc_cplusplus_define(Bootstrap PUBLIC) +qt_internal_apply_intel_cet(Bootstrap PUBLIC) # special case end -- cgit v1.2.3