Browse Source

ENH: add compiler id for IAR compiler (http://www.iar.com/)
ENH: don't run endian test again if the variable is already set

Alex

Alexander Neundorf 18 years ago
parent
commit
e10e3bc86e

+ 4 - 0
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"
 

+ 1 - 0
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<suffix>"
 IF (NOT _CMAKE_TOOLCHAIN_SUFFIX)
   GET_FILENAME_COMPONENT(COMPILER_BASENAME "${CMAKE_C_COMPILER}" NAME)
   IF (COMPILER_BASENAME MATCHES "^cl(.+)\\.exe$")

+ 4 - 0
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)