CMake/Modules/CMakeTestCompilerCommon.cmake
Alex Turbov 7b2dd9dedc
Refactor: Use added message types in various modules
Co-Authored-By: Craig Scott <craig.scott@crascit.com>
2019-11-02 14:10:09 +02:00

35 lines
1.3 KiB
CMake

# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
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}")
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()