Browse Source

IAR: Detect compiler platform version

`__IAR_SYSTEMS_ICC__` provides additional version information that
we need to determine correct usage of the compiler.  Extract and
store it as `CMAKE_<LANG>_COMPILER_VERSION_INTERNAL`.

Issue: #17264
Stefan Andersson 8 years ago
parent
commit
1bdb8cd247
1 changed files with 5 additions and 2 deletions
  1. 5 2
      Modules/Compiler/IAR-DetermineCompiler.cmake

+ 5 - 2
Modules/Compiler/IAR-DetermineCompiler.cmake

@@ -2,8 +2,10 @@
 #   http://www.iar.com
 #   http://supp.iar.com/FilesPublic/UPDINFO/004916/arm/doc/EWARM_DevelopmentGuide.ENU.pdf
 #
-# __IAR_SYSTEMS_ICC__ An integer that identifies the IAR compiler platform. The current value is 8. Note that
-#                     the number could be higher in a future version of the product
+# __IAR_SYSTEMS_ICC__ An integer that identifies the IAR compiler platform:
+#                       9 and higher means C11 and C++14 as language default
+#                       8 means C99 and C++03 as language default
+#                       7 and lower means C89 and EC++ as language default.
 # __ICCARM__          An integer that is set to 1 when the code is compiled with the IAR C/C++ Compiler for ARM
 # __VER__             An integer that identifies the version number of the IAR compiler in use. For example,
 #                     version 5.11.3 is returned as 5011003.
@@ -15,4 +17,5 @@ set(_compiler_id_version_compute "
 #  define @PREFIX@COMPILER_VERSION_MAJOR @MACRO_DEC@((__VER__) / 1000000)
 #  define @PREFIX@COMPILER_VERSION_MINOR @MACRO_DEC@(((__VER__) / 1000) % 1000)
 #  define @PREFIX@COMPILER_VERSION_PATCH @MACRO_DEC@((__VER__) % 1000)
+#  define @PREFIX@COMPILER_VERSION_INTERNAL @MACRO_DEC@(__IAR_SYSTEMS_ICC__)
 # endif")