summaryrefslogtreecommitdiff
path: root/Modules/CMakeTestCompilerCommon.cmake
blob: da7c007d0b4b1d52d711f1f8b6a91d2ec20013ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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()