mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
Check*: Restore more toleration of ;-W... in CMAKE_REQUIRED_FLAGS
Commit 5abaf65154 (Check*: Restore toleration of `;-W...` in
CMAKE_REQUIRED_FLAGS, 2026-06-24, v4.4.0-rc3~2^2) introduced logic to
prevent `-W*` arguments in `CMAKE_REQUIRED_FLAGS` from being passed as
CMake arguments in the `check[_<lang>]_source_{compiles,runs}` family of
utilities. However, several other related modules are also affected.
Update those to also use the new logic, and to have more uniform
implementations, making use of the refactoring from the previous commit.
Fixes: #27961
This commit is contained in:
committed by
Brad King
parent
7644d557df
commit
a72e241200
@@ -116,15 +116,10 @@ See Also
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
macro(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
|
||||
if(NOT DEFINED "${VARIABLE}")
|
||||
if(CMAKE_REQUIRED_INCLUDES)
|
||||
set(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
|
||||
else()
|
||||
set(CHECK_INCLUDE_FILE_C_INCLUDE_DIRS)
|
||||
endif()
|
||||
set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
set(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
|
||||
file(READ ${CMAKE_ROOT}/Modules/CheckIncludeFile.c.in _CIF_SOURCE_CONTENT)
|
||||
string(CONFIGURE "${_CIF_SOURCE_CONTENT}" _CIF_SOURCE_CONTENT)
|
||||
@@ -136,18 +131,17 @@ macro(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
|
||||
string(APPEND CMAKE_C_FLAGS " ${ARGV2}")
|
||||
endif()
|
||||
|
||||
set(_CIF_LINK_OPTIONS)
|
||||
if(CMAKE_REQUIRED_LINK_OPTIONS)
|
||||
set(_CIF_LINK_OPTIONS LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
|
||||
endif()
|
||||
cmake_check_common_init_compile_args(_CIF)
|
||||
cmake_check_common_init_link_options(_CIF)
|
||||
cmake_check_common_init_link_directories(_CIF)
|
||||
|
||||
set(_CIF_LINK_LIBRARIES "")
|
||||
set(_CIF_ADD_LINK_LIBRARIES "")
|
||||
if(CMAKE_REQUIRED_LIBRARIES)
|
||||
cmake_policy(GET CMP0075 _CIF_CMP0075
|
||||
PARENT_SCOPE # undocumented, do not use outside of CMake
|
||||
)
|
||||
if("x${_CIF_CMP0075}x" STREQUAL "xNEWx")
|
||||
set(_CIF_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
set(_CIF_ADD_LINK_LIBRARIES LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
elseif("x${_CIF_CMP0075}x" STREQUAL "xOLDx")
|
||||
elseif(NOT _CIF_CMP0075_WARNED)
|
||||
set(_CIF_CMP0075_WARNED 1)
|
||||
@@ -160,26 +154,17 @@ macro(CHECK_INCLUDE_FILE INCLUDE VARIABLE)
|
||||
unset(_CIF_CMP0075)
|
||||
endif()
|
||||
|
||||
if(CMAKE_REQUIRED_LINK_DIRECTORIES)
|
||||
set(_CIF_LINK_DIRECTORIES
|
||||
"-DLINK_DIRECTORIES:STRING=${CMAKE_REQUIRED_LINK_DIRECTORIES}")
|
||||
else()
|
||||
set(_CIF_LINK_DIRECTORIES)
|
||||
endif()
|
||||
|
||||
try_compile(${VARIABLE}
|
||||
SOURCE_FROM_VAR CheckIncludeFile.c _CIF_SOURCE_CONTENT
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${_CIF_LINK_OPTIONS}
|
||||
${_CIF_LINK_LIBRARIES}
|
||||
${_CIF_ADD_LINK_OPTIONS}
|
||||
${_CIF_ADD_LINK_LIBRARIES}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_INCLUDE_FILE_FLAGS}
|
||||
"${CHECK_INCLUDE_FILE_C_INCLUDE_DIRS}"
|
||||
"${_CIF_LINK_DIRECTORIES}"
|
||||
-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
|
||||
"${_CIF_INCLUDE_DIRECTORIES}"
|
||||
"${_CIF_LINK_DIRECTORIES}"
|
||||
)
|
||||
unset(_CIF_LINK_OPTIONS)
|
||||
unset(_CIF_LINK_LIBRARIES)
|
||||
unset(_CIF_LINK_DIRECTORIES)
|
||||
cmake_check_common_cleanup(_CIF)
|
||||
|
||||
if(${ARGC} EQUAL 3)
|
||||
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS_SAVE})
|
||||
|
||||
Reference in New Issue
Block a user