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
@@ -123,38 +123,15 @@ See Also
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
macro(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
|
||||
if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
|
||||
set(MACRO_CHECK_FUNCTION_DEFINITIONS
|
||||
"-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}")
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
message(CHECK_START "Looking for ${FUNCTION}")
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_LINK_OPTIONS)
|
||||
set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS
|
||||
LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
|
||||
else()
|
||||
set(CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS)
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES
|
||||
LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
else()
|
||||
set(CHECK_FUNCTION_EXISTS_ADD_LIBRARIES)
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_LINK_DIRECTORIES)
|
||||
set(_CFE_LINK_DIRECTORIES
|
||||
"-DLINK_DIRECTORIES:STRING=${CMAKE_REQUIRED_LINK_DIRECTORIES}")
|
||||
else()
|
||||
set(_CFE_LINK_DIRECTORIES)
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_INCLUDES)
|
||||
set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
else()
|
||||
set(CHECK_FUNCTION_EXISTS_ADD_INCLUDES)
|
||||
endif()
|
||||
|
||||
cmake_check_common_init_args(_CFE)
|
||||
|
||||
if(CMAKE_C_COMPILER_LOADED)
|
||||
set(_cfe_source CheckFunctionExists.c)
|
||||
@@ -166,15 +143,19 @@ macro(CHECK_FUNCTION_EXISTS FUNCTION VARIABLE)
|
||||
|
||||
try_compile(${VARIABLE}
|
||||
SOURCE_FROM_FILE "${_cfe_source}" "${CMAKE_ROOT}/Modules/CheckFunctionExists.c"
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${CHECK_FUNCTION_EXISTS_ADD_LINK_OPTIONS}
|
||||
${CHECK_FUNCTION_EXISTS_ADD_LIBRARIES}
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
|
||||
"${CHECK_FUNCTION_EXISTS_ADD_INCLUDES}"
|
||||
"${_CFE_LINK_DIRECTORIES}"
|
||||
COMPILE_DEFINITIONS
|
||||
-DCHECK_FUNCTION_EXISTS=${FUNCTION}
|
||||
${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${_CFE_ADD_LINK_OPTIONS}
|
||||
${_CFE_ADD_LINK_LIBRARIES}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
|
||||
${_CSC_EXTRA_CMAKE_ARGUMENTS}
|
||||
"${_CFE_INCLUDE_DIRECTORIES}"
|
||||
"${_CFE_LINK_DIRECTORIES}"
|
||||
)
|
||||
unset(_cfe_source)
|
||||
unset(_CFE_LINK_DIRECTORIES)
|
||||
cmake_check_common_cleanup(_CFE)
|
||||
|
||||
if(${VARIABLE})
|
||||
set(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION}")
|
||||
|
||||
@@ -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})
|
||||
|
||||
@@ -85,15 +85,10 @@ See Also
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
macro(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
|
||||
if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
|
||||
if(CMAKE_REQUIRED_INCLUDES)
|
||||
set(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
|
||||
else()
|
||||
set(CHECK_INCLUDE_FILE_CXX_INCLUDE_DIRS)
|
||||
endif()
|
||||
set(MACRO_CHECK_INCLUDE_FILE_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
set(CHECK_INCLUDE_FILE_VAR ${INCLUDE})
|
||||
file(READ ${CMAKE_ROOT}/Modules/CheckIncludeFile.cxx.in _CIF_SOURCE_CONTENT)
|
||||
string(CONFIGURE "${_CIF_SOURCE_CONTENT}" _CIF_SOURCE_CONTENT)
|
||||
@@ -105,18 +100,17 @@ macro(CHECK_INCLUDE_FILE_CXX INCLUDE VARIABLE)
|
||||
string(APPEND CMAKE_CXX_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)
|
||||
@@ -129,26 +123,17 @@ macro(CHECK_INCLUDE_FILE_CXX 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.cxx _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_CXX_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_CXX_FLAGS ${CMAKE_CXX_FLAGS_SAVE})
|
||||
|
||||
@@ -106,6 +106,7 @@ See Also
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
|
||||
if(NOT DEFINED "${VARIABLE}")
|
||||
@@ -136,13 +137,7 @@ macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
|
||||
message(FATAL_ERROR "Unknown language:\n ${_lang}\nSupported languages: C, CXX.\n")
|
||||
endif()
|
||||
|
||||
if(CMAKE_REQUIRED_INCLUDES)
|
||||
set(CHECK_INCLUDE_FILES_INCLUDE_DIRS "-DINCLUDE_DIRECTORIES=${CMAKE_REQUIRED_INCLUDES}")
|
||||
else()
|
||||
set(CHECK_INCLUDE_FILES_INCLUDE_DIRS)
|
||||
endif()
|
||||
set(CHECK_INCLUDE_FILES_CONTENT "/* */\n")
|
||||
set(MACRO_CHECK_INCLUDE_FILES_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
foreach(FILE ${INCLUDE})
|
||||
string(APPEND _src_content
|
||||
"#include <${FILE}>\n")
|
||||
@@ -160,18 +155,17 @@ macro(CHECK_INCLUDE_FILES INCLUDE VARIABLE)
|
||||
set(_description "include file ${_INCLUDE}")
|
||||
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)
|
||||
@@ -184,29 +178,21 @@ macro(CHECK_INCLUDE_FILES 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()
|
||||
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
message(CHECK_START "Looking for ${_description}")
|
||||
endif()
|
||||
try_compile(${VARIABLE}
|
||||
SOURCE_FROM_VAR "${src}" _src_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_FILES_FLAGS}
|
||||
"${CHECK_INCLUDE_FILES_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(${VARIABLE})
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
message(CHECK_PASS "found")
|
||||
|
||||
@@ -118,30 +118,18 @@ See Also
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
macro(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
|
||||
if(NOT DEFINED "${VARIABLE}")
|
||||
set(MACRO_CHECK_LIBRARY_EXISTS_DEFINITION
|
||||
"-DCHECK_FUNCTION_EXISTS=${FUNCTION} ${CMAKE_REQUIRED_FLAGS}")
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
message(CHECK_START "Looking for ${FUNCTION} in ${LIBRARY}")
|
||||
endif()
|
||||
set(CHECK_LIBRARY_EXISTS_LINK_OPTIONS)
|
||||
if(CMAKE_REQUIRED_LINK_OPTIONS)
|
||||
set(CHECK_LIBRARY_EXISTS_LINK_OPTIONS
|
||||
LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
|
||||
endif()
|
||||
set(CHECK_LIBRARY_EXISTS_LIBRARIES ${LIBRARY})
|
||||
if(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CHECK_LIBRARY_EXISTS_LIBRARIES
|
||||
${CHECK_LIBRARY_EXISTS_LIBRARIES} ${CMAKE_REQUIRED_LIBRARIES})
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_LINK_DIRECTORIES)
|
||||
set(_CLE_LINK_DIRECTORIES
|
||||
"-DLINK_DIRECTORIES:STRING=${LOCATION};${CMAKE_REQUIRED_LINK_DIRECTORIES}")
|
||||
else()
|
||||
set(_CLE_LINK_DIRECTORIES "-DLINK_DIRECTORIES:STRING=${LOCATION}")
|
||||
endif()
|
||||
|
||||
cmake_check_common_init_compile_flags(_CLE)
|
||||
cmake_check_common_init_link_options(_CLE)
|
||||
cmake_check_common_init_link_libraries(_CLE "${LIBRARY}")
|
||||
cmake_check_common_init_link_directories(_CLE "${LOCATION}")
|
||||
|
||||
if(CMAKE_C_COMPILER_LOADED)
|
||||
set(_cle_source CheckFunctionExists.c)
|
||||
@@ -153,15 +141,17 @@ macro(CHECK_LIBRARY_EXISTS LIBRARY FUNCTION LOCATION VARIABLE)
|
||||
|
||||
try_compile(${VARIABLE}
|
||||
SOURCE_FROM_FILE "${_cle_source}" "${CMAKE_ROOT}/Modules/CheckFunctionExists.c"
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${CHECK_LIBRARY_EXISTS_LINK_OPTIONS}
|
||||
LINK_LIBRARIES ${CHECK_LIBRARY_EXISTS_LIBRARIES}
|
||||
COMPILE_DEFINITIONS
|
||||
-DCHECK_FUNCTION_EXISTS=${FUNCTION}
|
||||
${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${_CLE_ADD_LINK_OPTIONS}
|
||||
${_CLE_ADD_LINK_LIBRARIES}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_LIBRARY_EXISTS_DEFINITION}
|
||||
"${_CLE_LINK_DIRECTORIES}"
|
||||
-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
|
||||
"${_CLE_LINK_DIRECTORIES}"
|
||||
)
|
||||
unset(_cle_source)
|
||||
unset(_CLE_LINK_DIRECTORIES)
|
||||
cmake_check_common_cleanup(_CLE)
|
||||
|
||||
if(${VARIABLE})
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
|
||||
@@ -94,6 +94,7 @@ expected prototype:
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
function(check_prototype_definition _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIABLE)
|
||||
|
||||
@@ -103,33 +104,6 @@ function(check_prototype_definition _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIAB
|
||||
endif()
|
||||
set(CHECK_PROTOTYPE_DEFINITION_CONTENT "/* */\n")
|
||||
|
||||
set(CHECK_PROTOTYPE_DEFINITION_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
if (CMAKE_REQUIRED_LINK_OPTIONS)
|
||||
set(CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS
|
||||
LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
|
||||
else()
|
||||
set(CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS)
|
||||
endif()
|
||||
if (CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CHECK_PROTOTYPE_DEFINITION_LIBS
|
||||
LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
else()
|
||||
set(CHECK_PROTOTYPE_DEFINITION_LIBS)
|
||||
endif()
|
||||
if (CMAKE_REQUIRED_INCLUDES)
|
||||
set(CMAKE_SYMBOL_EXISTS_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
else()
|
||||
set(CMAKE_SYMBOL_EXISTS_INCLUDES)
|
||||
endif()
|
||||
|
||||
if(CMAKE_REQUIRED_LINK_DIRECTORIES)
|
||||
set(_CPD_LINK_DIRECTORIES
|
||||
"-DLINK_DIRECTORIES:STRING=${CMAKE_REQUIRED_LINK_DIRECTORIES}")
|
||||
else()
|
||||
set(_CPD_LINK_DIRECTORIES)
|
||||
endif()
|
||||
|
||||
foreach(_FILE ${_HEADER})
|
||||
string(APPEND CHECK_PROTOTYPE_DEFINITION_HEADER
|
||||
"#include <${_FILE}>\n")
|
||||
@@ -142,16 +116,19 @@ function(check_prototype_definition _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIAB
|
||||
file(READ ${CMAKE_CURRENT_FUNCTION_LIST_DIR}/CheckPrototypeDefinition.c.in _SOURCE)
|
||||
string(CONFIGURE "${_SOURCE}" _SOURCE @ONLY)
|
||||
|
||||
cmake_check_common_init_args(_CPD)
|
||||
|
||||
try_compile(${_VARIABLE}
|
||||
SOURCE_FROM_VAR CheckPrototypeDefinition.c _SOURCE
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${CHECK_PROTOTYPE_DEFINITION_LINK_OPTIONS}
|
||||
${CHECK_PROTOTYPE_DEFINITION_LIBS}
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${CHECK_PROTOTYPE_DEFINITION_FLAGS}
|
||||
"${CMAKE_SYMBOL_EXISTS_INCLUDES}"
|
||||
"${_CPD_LINK_DIRECTORIES}"
|
||||
${_CPD_ADD_LINK_OPTIONS}
|
||||
${_CPD_ADD_LINK_LIBRARIES}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
|
||||
${_CPD_EXTRA_CMAKE_ARGUMENTS}
|
||||
"${_CPD_INCLUDE_DIRECTORIES}"
|
||||
"${_CPD_LINK_DIRECTORIES}"
|
||||
)
|
||||
unset(_CPD_LINK_DIRECTORIES)
|
||||
|
||||
if (${_VARIABLE})
|
||||
set(${_VARIABLE} 1 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}")
|
||||
@@ -165,5 +142,4 @@ function(check_prototype_definition _FUNCTION _PROTOTYPE _RETURN _HEADER _VARIAB
|
||||
set(${_VARIABLE} 0 CACHE INTERNAL "Have correct prototype for ${_FUNCTION}")
|
||||
endif ()
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
@@ -91,6 +91,7 @@ See Also
|
||||
#]=======================================================================]
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
macro(CHECK_SYMBOL_EXISTS SYMBOL FILES VARIABLE)
|
||||
if(CMAKE_C_COMPILER_LOADED)
|
||||
@@ -134,32 +135,7 @@ endmacro()
|
||||
macro(__CHECK_SYMBOL_EXISTS_IMPL SOURCEFILE SYMBOL FILES VARIABLE)
|
||||
if(NOT DEFINED "${VARIABLE}" OR "x${${VARIABLE}}" STREQUAL "x${VARIABLE}")
|
||||
set(_CSE_SOURCE "/* */\n")
|
||||
set(MACRO_CHECK_SYMBOL_EXISTS_FLAGS ${CMAKE_REQUIRED_FLAGS})
|
||||
if(CMAKE_REQUIRED_LINK_OPTIONS)
|
||||
set(CHECK_SYMBOL_EXISTS_LINK_OPTIONS
|
||||
LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS})
|
||||
else()
|
||||
set(CHECK_SYMBOL_EXISTS_LINK_OPTIONS)
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_LIBRARIES)
|
||||
set(CHECK_SYMBOL_EXISTS_LIBS
|
||||
LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES})
|
||||
else()
|
||||
set(CHECK_SYMBOL_EXISTS_LIBS)
|
||||
endif()
|
||||
if(CMAKE_REQUIRED_INCLUDES)
|
||||
set(CMAKE_SYMBOL_EXISTS_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
else()
|
||||
set(CMAKE_SYMBOL_EXISTS_INCLUDES)
|
||||
endif()
|
||||
|
||||
if(CMAKE_REQUIRED_LINK_DIRECTORIES)
|
||||
set(_CSE_LINK_DIRECTORIES
|
||||
"-DLINK_DIRECTORIES:STRING=${CMAKE_REQUIRED_LINK_DIRECTORIES}")
|
||||
else()
|
||||
set(_CSE_LINK_DIRECTORIES)
|
||||
endif()
|
||||
foreach(FILE ${FILES})
|
||||
string(APPEND _CSE_SOURCE
|
||||
"#include <${FILE}>\n")
|
||||
@@ -187,20 +163,23 @@ int main(int argc, char** argv)
|
||||
}\n")
|
||||
unset(_CSE_CHECK_NON_MACRO)
|
||||
|
||||
cmake_check_common_init_args(_CSE)
|
||||
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
message(CHECK_START "Looking for ${SYMBOL}")
|
||||
endif()
|
||||
try_compile(${VARIABLE}
|
||||
SOURCE_FROM_VAR "${SOURCEFILE}" _CSE_SOURCE
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
${CHECK_SYMBOL_EXISTS_LINK_OPTIONS}
|
||||
${CHECK_SYMBOL_EXISTS_LIBS}
|
||||
${_CSE_ADD_LINK_OPTIONS}
|
||||
${_CSE_ADD_LINK_LIBRARIES}
|
||||
CMAKE_FLAGS
|
||||
-DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_SYMBOL_EXISTS_FLAGS}
|
||||
"${CMAKE_SYMBOL_EXISTS_INCLUDES}"
|
||||
"${_CSE_LINK_DIRECTORIES}"
|
||||
-DCMAKE_SKIP_RPATH:BOOL=${CMAKE_SKIP_RPATH}
|
||||
"${_CSE_INCLUDE_DIRECTORIES}"
|
||||
"${_CSE_LINK_DIRECTORIES}"
|
||||
)
|
||||
unset(_CSE_LINK_DIRECTORIES)
|
||||
cmake_check_common_cleanup(_CSE)
|
||||
|
||||
if(${VARIABLE})
|
||||
if(NOT CMAKE_REQUIRED_QUIET)
|
||||
message(CHECK_PASS "found")
|
||||
|
||||
@@ -282,6 +282,7 @@ include(CheckIncludeFile)
|
||||
include(CheckIncludeFileCXX)
|
||||
|
||||
include_guard(GLOBAL)
|
||||
include(Internal/CheckCommon)
|
||||
|
||||
block(SCOPE_FOR POLICIES)
|
||||
cmake_policy(SET CMP0140 NEW)
|
||||
@@ -334,12 +335,7 @@ function(__check_type_size_impl type var result_var map builtin language)
|
||||
string(APPEND headers "#include \"${h}\"\n")
|
||||
endforeach()
|
||||
|
||||
if(CMAKE_REQUIRED_LINK_DIRECTORIES)
|
||||
set(_CTS_LINK_DIRECTORIES
|
||||
"-DLINK_DIRECTORIES:STRING=${CMAKE_REQUIRED_LINK_DIRECTORIES}")
|
||||
else()
|
||||
set(_CTS_LINK_DIRECTORIES)
|
||||
endif()
|
||||
cmake_check_common_init_args(_CTS)
|
||||
|
||||
# Perform the check.
|
||||
set(bin ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CheckTypeSize/${var}.bin)
|
||||
@@ -347,15 +343,14 @@ function(__check_type_size_impl type var result_var map builtin language)
|
||||
string(CONFIGURE "${src_content}" src_content @ONLY)
|
||||
try_compile(${result_var} SOURCE_FROM_VAR "${src}" src_content
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
LINK_OPTIONS ${CMAKE_REQUIRED_LINK_OPTIONS}
|
||||
LINK_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES}
|
||||
${_CTS_ADD_LINK_OPTIONS}
|
||||
${_CTS_ADD_LINK_LIBRARIES}
|
||||
CMAKE_FLAGS
|
||||
"-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}"
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}"
|
||||
-DCOMPILE_DEFINITIONS:STRING=${CMAKE_REQUIRED_FLAGS}
|
||||
"${_CTS_INCLUDE_DIRECTORIES}"
|
||||
"${_CTS_LINK_DIRECTORIES}"
|
||||
COPY_FILE ${bin}
|
||||
)
|
||||
unset(_CTS_LINK_DIRECTORIES)
|
||||
|
||||
if(${result_var})
|
||||
# The check compiled. Load information from the binary.
|
||||
|
||||
Reference in New Issue
Block a user