2023-11-01 06:11:15 +08:00
|
|
|
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
|
|
# file Copyright.txt or https://cmake.org/licensing for details.
|
|
|
|
|
|
|
|
|
2023-11-01 06:34:31 +08:00
|
|
|
function(PrintTestCompilerStatus LANG)
|
|
|
|
# ARGN shouldn't be needed now, but it is there to preserve backward
|
|
|
|
# compatibility in case this function is called from project code or
|
|
|
|
# custom toolchains (they shouldn't, but we can easily support it)
|
|
|
|
message(CHECK_START "Check for working ${LANG} compiler: ${CMAKE_${LANG}_COMPILER}${ARGN}")
|
|
|
|
endfunction()
|
|
|
|
|
|
|
|
function(PrintTestCompilerResult TYPE MSG)
|
|
|
|
message(${TYPE} "${MSG}")
|
2023-11-01 06:11:15 +08:00
|
|
|
endfunction()
|
|
|
|
|
|
|
|
# if required set the target type if not already explicitly set
|
|
|
|
macro(__TestCompiler_setTryCompileTargetType)
|
|
|
|
if(NOT CMAKE_TRY_COMPILE_TARGET_TYPE)
|
|
|
|
if("${CMAKE_GENERATOR}" MATCHES "Green Hills MULTI")
|
|
|
|
#prefer static libraries to avoid linking issues
|
|
|
|
set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
|
|
|
|
set(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE 1)
|
|
|
|
endif()
|
|
|
|
endif()
|
|
|
|
endmacro()
|
|
|
|
|
|
|
|
# restore the original value
|
|
|
|
# -- not necessary if __TestCompiler_setTryCompileTargetType() was used in function scope
|
|
|
|
macro(__TestCompiler_restoreTryCompileTargetType)
|
|
|
|
if(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE)
|
|
|
|
unset(CMAKE_TRY_COMPILE_TARGET_TYPE)
|
|
|
|
unset(__CMAKE_TEST_COMPILER_TARGET_TYPE_RESTORE)
|
|
|
|
endif()
|
|
|
|
endmacro()
|