diff --git a/Modules/CMakeCCompilerId.c b/Modules/CMakeCCompilerId.c index ae9e188fc..e5250f61e 100644 --- a/Modules/CMakeCCompilerId.c +++ b/Modules/CMakeCCompilerId.c @@ -33,6 +33,10 @@ #elif defined(_MSC_VER) # define COMPILER_ID "MSVC" +/*IAR Systems compiler for embedded systems, beside this id not yet supported*/ +#elif defined(__IAR_SYSTEMS_ICC__) +# define COMPILER_ID "IAR" + #elif defined(_COMPILER_VERSION) # define COMPILER_ID "MIPSpro" diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake index b3c7c6cfa..9e68b80d1 100644 --- a/Modules/CMakeDetermineCCompiler.cmake +++ b/Modules/CMakeDetermineCCompiler.cmake @@ -97,6 +97,7 @@ ENDIF (NOT _CMAKE_TOOLCHAIN_PREFIX) # if we have a MS cross compiler, it usually has a suffix, like # e.g. clarm.exe or clmips.exe. Use this suffix for the CXX compiler too. +# the same is true e.g. for the IAR cross compiler, which is "icc" IF (NOT _CMAKE_TOOLCHAIN_SUFFIX) GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME) IF (COMPILER_BASENAME MATCHES "^cl(.+)\\.exe$") diff --git a/Modules/TestBigEndian.cmake b/Modules/TestBigEndian.cmake index 021b9a67c..b1a65bf26 100644 --- a/Modules/TestBigEndian.cmake +++ b/Modules/TestBigEndian.cmake @@ -5,6 +5,8 @@ # MACRO(TEST_BIG_ENDIAN VARIABLE) + SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS 1) + IF(NOT DEFINED ${VARIABLE}) IF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") TRY_RUN(${VARIABLE} HAVE_${VARIABLE} ${CMAKE_BINARY_DIR} @@ -34,4 +36,6 @@ MACRO(TEST_BIG_ENDIAN VARIABLE) MESSAGE("Check if the system is big endian - failed") ENDIF(HAVE_${VARIABLE}) ENDIF("HAVE_${VARIABLE}" MATCHES "^HAVE_${VARIABLE}$") + ENDIF(NOT DEFINED ${VARIABLE}) + SET(CMAKE_ALLOW_UNKNOWN_VARIABLE_READ_ACCESS) ENDMACRO(TEST_BIG_ENDIAN)