CMake: Avoid MSVC C4996 warnings

The qmake build system defines _CRT_SECURE_NO_WARNINGS in
mkspecs/features/qt_module.prf, the cmake build system should do the
same thing in qt_internal_add_module().

Adding this definition can avoid warnings like:
warning C4996: 'strncpy': This function or variable may be unsafe.

As a special case, Bootstrap uses add_library() instead of
qt_internal_add_module(), so _CRT_SECURE_NO_WARNINGS should also be
defined in src/tools/bootstrap/CMakeLists.txt.

Change-Id: Ic82193d177f82785fd84948efa78c49ca8d8db46
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
(cherry picked from commit 013abe320680b3dcd3f6d7e4fb4880e590ba10e6)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Li Xinwei 2020-12-03 23:24:18 +08:00 committed by Qt Cherry-pick Bot
parent 56d41d9b8b
commit 0a23cab457
2 changed files with 9 additions and 0 deletions

View File

@ -341,6 +341,10 @@ function(qt_internal_add_module target)
)
endif()
if(MSVC)
list(APPEND defines_for_extend_target _CRT_SECURE_NO_WARNINGS)
endif()
qt_internal_extend_target("${target}"
${header_module}
SOURCES ${arg_SOURCES}

View File

@ -268,4 +268,9 @@ set_target_properties(Bootstrap PROPERTIES AUTOMOC OFF AUTOUIC OFF AUTORCC OFF)
qt_internal_add_target_aliases(Bootstrap)
qt_set_msvc_cplusplus_options(Bootstrap PUBLIC)
qt_internal_apply_intel_cet(Bootstrap PUBLIC)
qt_internal_extend_target(Bootstrap CONDITION MSVC
DEFINES
_CRT_SECURE_NO_WARNINGS
)
# special case end