[Cmake-commits] CMake branch, master, updated. v3.9.0-rc5-243-g2ef3527

Kitware Robot kwrobot at kitware.com
Fri Jul 7 08:45:18 EDT 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, master has been updated
       via  2ef3527dfe03ac6e5f5c49d13d99b2304381b0a8 (commit)
       via  364496e4d284c64c81c622f7ffb3674b9a83507f (commit)
       via  1ff7cd1fe7cdd408d55827bdc10058167a09cf45 (commit)
       via  d2617a28eb9f489d87be88851a313c58d5eaf027 (commit)
       via  a951eb2cb4b354e521bc6b93c7980e7f22ab1174 (commit)
       via  658ecc1a7cab54aeb738a00e7fee24aa4bd18adb (commit)
       via  796b8fcb14072bef72fe324015c0a62e2006b0db (commit)
       via  6c80e958cad73105c44e6b725a8ed7394e04290d (commit)
       via  d1713d8bc580cdfad39b088285afcb92dea417de (commit)
       via  d8e6cd9ed8bfee9073cff26cb654bc01e653b0b9 (commit)
       via  0b1a2876c817a00daf7027570b1976a9e15ff654 (commit)
       via  fea7d69ddeedd72f6a1f8cec5a011696dec832db (commit)
       via  d2a8b5cea6baa0508f9935ac2327fcf63f52c21a (commit)
       via  a2112257df2f255d8aa3584af468b7d30ff90e8c (commit)
       via  8cd28bb0e54f962ab2b189f1b7196c2b014129a7 (commit)
       via  0fc2d78ee97cb0ba73040be353bdedd4fc03c2b9 (commit)
      from  17115f0a5b594e76d6e3fa2df1361224e57ddf0f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2ef3527dfe03ac6e5f5c49d13d99b2304381b0a8
commit 2ef3527dfe03ac6e5f5c49d13d99b2304381b0a8
Merge: 364496e 658ecc1
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jul 7 08:43:39 2017 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Jul 7 08:43:39 2017 -0400

    Merge branch 'release-3.9'


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=364496e4d284c64c81c622f7ffb3674b9a83507f
commit 364496e4d284c64c81c622f7ffb3674b9a83507f
Merge: 1ff7cd1 6c80e95
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jul 7 12:42:33 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Jul 7 08:42:41 2017 -0400

    Merge topic 'add-missing-fallthrough'
    
    6c80e958 cmCTest: Add missing switch case fallthrough markup
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1027


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1ff7cd1fe7cdd408d55827bdc10058167a09cf45
commit 1ff7cd1fe7cdd408d55827bdc10058167a09cf45
Merge: d2617a2 d8e6cd9
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jul 7 12:42:16 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Jul 7 08:42:22 2017 -0400

    Merge topic 'iar_improved'
    
    d8e6cd9e IAR: Improve support for IAR ARM Compiler
    0b1a2876 Add a CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID variable
    fea7d69d Store CMAKE_ASM_COMPILER_VERSION persistently
    d2a8b5ce CMakeDetermineASMCompiler: Fix small copy-paste mistake
    a2112257 Add infrastructure to use language extensions without any standard
    8cd28bb0 cmLocalGenerator: Switch order of <LANG>_{EXTENSIONS,STANDARD} check
    0fc2d78e cmLocalGenerator: Simplify logic for language standard or extension flag
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !991


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d2617a28eb9f489d87be88851a313c58d5eaf027
commit d2617a28eb9f489d87be88851a313c58d5eaf027
Merge: a951eb2 d1713d8
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jul 7 12:41:17 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Jul 7 08:41:30 2017 -0400

    Merge topic 'connect_disablePCH_with_cl_option'
    
    d1713d8b VS: connect /Y- compiler option with "Not Using Precompiled Headers"
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !1026


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a951eb2cb4b354e521bc6b93c7980e7f22ab1174
commit a951eb2cb4b354e521bc6b93c7980e7f22ab1174
Merge: 17115f0 796b8fc
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jul 7 12:40:54 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Fri Jul 7 08:41:04 2017 -0400

    Merge topic 'FindDoxygen-create-output-dir'
    
    796b8fcb FindDoxygen: Create DOXYGEN_OUTPUT_DIRECTORY if it doesn't exist
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Reviewed-by: Craig Scott <craig.scott at crascit.com>
    Merge-request: !1019


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=6c80e958cad73105c44e6b725a8ed7394e04290d
commit 6c80e958cad73105c44e6b725a8ed7394e04290d
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jul 5 11:36:56 2017 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jul 5 11:48:47 2017 -0400

    cmCTest: Add missing switch case fallthrough markup
    
    Without this, GCC 7 warns.
    
    Reported-by: Rolf Eike Beer <eike at sf-mail.de>

diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index e260556..6078256 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -190,7 +190,8 @@ int cmCTest::HTTPRequest(std::string url, HTTPMethod method,
       ::curl_easy_setopt(curl, CURLOPT_PUT, 1);
       file = cmsys::SystemTools::Fopen(putFile, "rb");
       ::curl_easy_setopt(curl, CURLOPT_INFILE, file);
-    // fall through to append GET fields
+      // fall through to append GET fields
+      CM_FALLTHROUGH;
     case cmCTest::HTTP_GET:
       if (!fields.empty()) {
         url += "?" + fields;

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1713d8bc580cdfad39b088285afcb92dea417de
commit d1713d8bc580cdfad39b088285afcb92dea417de
Author:     Olender, Sebastian D <sebastian.d.olender at intel.com>
AuthorDate: Wed Jul 5 10:58:04 2017 +0200
Commit:     Olender, Sebastian D <sebastian.d.olender at intel.com>
CommitDate: Wed Jul 5 10:58:04 2017 +0200

    VS: connect /Y- compiler option with "Not Using Precompiled Headers"
    
    The change allows to selectively disable PrecompiledHeaders.
    Despite the `$(VCTargetsPath)/1033/cl.xml` contains an empty value for switch,
    for effectively turn off setting need to use /Y- option as described on msdn:
    https://msdn.microsoft.com/en-us/library/1hy7a92h.aspx

diff --git a/Source/cmVS10CLFlagTable.h b/Source/cmVS10CLFlagTable.h
index dbd760e..df4d58c 100644
--- a/Source/cmVS10CLFlagTable.h
+++ b/Source/cmVS10CLFlagTable.h
@@ -70,7 +70,8 @@ static cmVS7FlagTable cmVS10CLFlagTable[] = {
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
   { "PrecompiledHeader", "Yu", "Use", "Use",
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
-  { "PrecompiledHeader", "", "Not Using Precompiled Headers", "NotUsing", 0 },
+  { "PrecompiledHeader", "Y-", "Not Using Precompiled Headers", "NotUsing",
+    0 },
 
   { "AssemblerOutput", "", "No Listing", "NoListing", 0 },
   { "AssemblerOutput", "FA", "Assembly-Only Listing", "AssemblyCode", 0 },
diff --git a/Source/cmVS11CLFlagTable.h b/Source/cmVS11CLFlagTable.h
index 7531709..d156938 100644
--- a/Source/cmVS11CLFlagTable.h
+++ b/Source/cmVS11CLFlagTable.h
@@ -74,7 +74,8 @@ static cmVS7FlagTable cmVS11CLFlagTable[] = {
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
   { "PrecompiledHeader", "Yu", "Use", "Use",
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
-  { "PrecompiledHeader", "", "Not Using Precompiled Headers", "NotUsing", 0 },
+  { "PrecompiledHeader", "Y-", "Not Using Precompiled Headers", "NotUsing",
+    0 },
 
   { "AssemblerOutput", "", "No Listing", "NoListing", 0 },
   { "AssemblerOutput", "FA", "Assembly-Only Listing", "AssemblyCode", 0 },
diff --git a/Source/cmVS12CLFlagTable.h b/Source/cmVS12CLFlagTable.h
index 9515c91..a4f2518 100644
--- a/Source/cmVS12CLFlagTable.h
+++ b/Source/cmVS12CLFlagTable.h
@@ -78,7 +78,8 @@ static cmVS7FlagTable cmVS12CLFlagTable[] = {
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
   { "PrecompiledHeader", "Yu", "Use", "Use",
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
-  { "PrecompiledHeader", "", "Not Using Precompiled Headers", "NotUsing", 0 },
+  { "PrecompiledHeader", "Y-", "Not Using Precompiled Headers", "NotUsing",
+    0 },
 
   { "AssemblerOutput", "", "No Listing", "NoListing", 0 },
   { "AssemblerOutput", "FA", "Assembly-Only Listing", "AssemblyCode", 0 },
diff --git a/Source/cmVS140CLFlagTable.h b/Source/cmVS140CLFlagTable.h
index 60b4379..2b89042 100644
--- a/Source/cmVS140CLFlagTable.h
+++ b/Source/cmVS140CLFlagTable.h
@@ -80,7 +80,8 @@ static cmVS7FlagTable cmVS140CLFlagTable[] = {
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
   { "PrecompiledHeader", "Yu", "Use", "Use",
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
-  { "PrecompiledHeader", "", "Not Using Precompiled Headers", "NotUsing", 0 },
+  { "PrecompiledHeader", "Y-", "Not Using Precompiled Headers", "NotUsing",
+    0 },
 
   { "AssemblerOutput", "", "No Listing", "NoListing", 0 },
   { "AssemblerOutput", "FA", "Assembly-Only Listing", "AssemblyCode", 0 },
diff --git a/Source/cmVS141CLFlagTable.h b/Source/cmVS141CLFlagTable.h
index f751fc8..e8b8f5c 100644
--- a/Source/cmVS141CLFlagTable.h
+++ b/Source/cmVS141CLFlagTable.h
@@ -87,7 +87,8 @@ static cmVS7FlagTable cmVS141CLFlagTable[] = {
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
   { "PrecompiledHeader", "Yu", "Use", "Use",
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
-  { "PrecompiledHeader", "", "Not Using Precompiled Headers", "NotUsing", 0 },
+  { "PrecompiledHeader", "Y-", "Not Using Precompiled Headers", "NotUsing",
+    0 },
 
   { "AssemblerOutput", "", "No Listing", "NoListing", 0 },
   { "AssemblerOutput", "FA", "Assembly-Only Listing", "AssemblyCode", 0 },

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d8e6cd9ed8bfee9073cff26cb654bc01e653b0b9
commit d8e6cd9ed8bfee9073cff26cb654bc01e653b0b9
Author:     Norbert Lange <nolange79 at gmail.com>
AuthorDate: Thu Jun 15 14:50:22 2017 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:25:58 2017 -0400

    IAR: Improve support for IAR ARM Compiler
    
    Make the implementation for this compiler more complete.
    
    IAR has multiple C++ modes, historically they were reduced c++ versions
    for embedded that gradually improved to the full standard (which can be
    reduced again by e.g. disabling rtti and exceptions).  The new
    implementation picks the best available, but the c++ mode can also be
    overridden by defining `CMAKE_IAR_CXX_FLAG`.
    
    Add C/C++ standard flags so that all modes up to and including the last
    supported standard are defined.
    
    Fixes: #16826

diff --git a/Help/release/dev/iar.rst b/Help/release/dev/iar.rst
new file mode 100644
index 0000000..c6678eb
--- /dev/null
+++ b/Help/release/dev/iar.rst
@@ -0,0 +1,4 @@
+iar
+---
+
+* Support for the IAR ARM Compiler was improved.
diff --git a/Help/variable/CMAKE_LANG_COMPILER_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ID.rst
index 0fab10c..5204044 100644
--- a/Help/variable/CMAKE_LANG_COMPILER_ID.rst
+++ b/Help/variable/CMAKE_LANG_COMPILER_ID.rst
@@ -20,6 +20,7 @@ include:
   G95 = G95 Fortran (g95.org)
   GNU = GNU Compiler Collection (gcc.gnu.org)
   HP = Hewlett-Packard Compiler (hp.com)
+  IAR = IAR Systems (iar.com)
   Intel = Intel Compiler (intel.com)
   MIPSpro = SGI MIPSpro (sgi.com)
   MSVC = Microsoft Visual Studio (microsoft.com)
diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index b4779bf..d031421 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -103,8 +103,23 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
   include(CMakeDetermineCompilerId)
   set(userflags)
   CMAKE_DETERMINE_COMPILER_ID_VENDOR(ASM${ASM_DIALECT} "${userflags}")
+  if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}" STREQUAL "IAR")
+    # primary necessary to detect architecture, so the right archiver and linker can be picked
+    # eg. IAR Assembler V8.10.1.12857/W32 for ARM
+    # Cut out identification first, newline handling is a pain
+    string(REGEX MATCH "IAR Assembler[^\r\n]*" _compileid "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT}")
+    if("${_compileid}" MATCHES "V([0-9]+\\.[0-9]+\\.[0-9]+)")
+      set(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION ${CMAKE_MATCH_1})
+    endif()
+    if("${_compileid}" MATCHES "for[ ]+([A-Za-z0-9]+)")
+      set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID ${CMAKE_MATCH_1})
+    endif()
+  endif()
+  unset(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_OUTPUT)
+  unset(_compileid)
 endif()
 
+
 if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
   if(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION)
     set(_version " ${CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION}")
@@ -149,6 +164,9 @@ endif ()
 
 
 include(CMakeFindBinUtils)
+set(_CMAKE_PROCESSING_LANGUAGE "ASM")
+include(Compiler/${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}-FindBinUtils OPTIONAL)
+unset(_CMAKE_PROCESSING_LANGUAGE)
 
 set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR "ASM${ASM_DIALECT}")
 
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
index 612dbb4..8c33eb6 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -73,6 +73,9 @@ else()
   set(CMAKE_CXX_COMPILER_ID_TEST_FLAGS
     # Try compiling to an object file only.
     "-c"
+    # IAR does not detect language automatically
+    "--c++"
+    "--ec++"
     )
 endif()
 
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index 59aac5c..8d4e6aa 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -678,6 +678,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_VENDOR lang userflags)
         "Checking whether the ${lang} compiler is ${vendor} using \"${flags}\" "
         "matched \"${regex}\":\n${output}")
       set(CMAKE_${lang}_COMPILER_ID "${vendor}" PARENT_SCOPE)
+      set(CMAKE_${lang}_COMPILER_ID_OUTPUT "${output}" PARENT_SCOPE)
       break()
     else()
       if("${result}" MATCHES  "timeout")
diff --git a/Modules/CMakePlatformId.h.in b/Modules/CMakePlatformId.h.in
index 47eb00a..c7065b2 100644
--- a/Modules/CMakePlatformId.h.in
+++ b/Modules/CMakePlatformId.h.in
@@ -144,6 +144,16 @@
 #  define ARCHITECTURE_ID ""
 # endif
 
+#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
+# if defined(__ICCARM__)
+#  define ARCHITECTURE_ID "ARM"
+
+# elif defined(__ICCAVR__)
+#  define ARCHITECTURE_ID "AVR"
+
+# else /* unknown architecture */
+#  define ARCHITECTURE_ID ""
+# endif
 #else
 #  define ARCHITECTURE_ID
 #endif
diff --git a/Modules/Compiler/IAR-ASM.cmake b/Modules/Compiler/IAR-ASM.cmake
index 844c30e..651bc3a 100644
--- a/Modules/Compiler/IAR-ASM.cmake
+++ b/Modules/Compiler/IAR-ASM.cmake
@@ -2,13 +2,20 @@
 
 include(Compiler/IAR)
 
-set(CMAKE_ASM_COMPILE_OBJECT  "<CMAKE_ASM_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
-
-if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "ARM")
+if("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
+set(CMAKE_ASM_COMPILE_OBJECT  "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
+  __compiler_iar_ARM(ASM)
   set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s;asm;msa)
-endif()
 
+  string(APPEND CMAKE_ASM_FLAGS_INIT " ")
+  string(APPEND CMAKE_ASM_FLAGS_DEBUG_INIT " -r")
+  string(APPEND CMAKE_ASM_FLAGS_MINSIZEREL_INIT " -DNDEBUG")
+  string(APPEND CMAKE_ASM_FLAGS_RELEASE_INIT " -DNDEBUG")
+  string(APPEND CMAKE_ASM_FLAGS_RELWITHDEBINFO_INIT " -r -DNDEBUG")
 
-if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
+elseif("${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
+  set(CMAKE_ASM_COMPILE_OBJECT  "<CMAKE_ASM_COMPILER> -S <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
+  __compiler_iar_AVR(ASM)
   set(CMAKE_ASM_SOURCE_FILE_EXTENSIONS s90;asm;msa)
+
 endif()
diff --git a/Modules/Compiler/IAR-C.cmake b/Modules/Compiler/IAR-C.cmake
index f65b0c7..48a9a16 100644
--- a/Modules/Compiler/IAR-C.cmake
+++ b/Modules/Compiler/IAR-C.cmake
@@ -1,25 +1,29 @@
 # This file is processed when the IAR compiler is used for a C file
 
-
 include(Compiler/IAR)
-
-set(CMAKE_C_COMPILE_OBJECT             "<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
-set(CMAKE_C_CREATE_PREPROCESSED_SOURCE "<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
-set(CMAKE_C_CREATE_ASSEMBLY_SOURCE     "<CMAKE_C_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
-
-set(CMAKE_C_RESPONSE_FILE_LINK_FLAG "-f ")
-set(CMAKE_DEPFILE_FLAGS_C "--dependencies=ns <DEPFILE>")
+include(Compiler/CMakeCommonCompilerMacros)
 
 # The toolchains for ARM and AVR are quite different:
-if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "ARM")
-
-  set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
-  set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS> ")
-
-endif()
+if("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
+  set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_C90_EXTENSION_COMPILE_OPTION -e)
+
+  if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 6.10)
+    set(CMAKE_C90_STANDARD_COMPILE_OPTION --c89)
+    set(CMAKE_C90_EXTENSION_COMPILE_OPTION --c89 -e)
+    set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_C99_EXTENSION_COMPILE_OPTION -e)
+  endif()
+  if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 8.10)
+    set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_C11_EXTENSION_COMPILE_OPTION -e)
+  endif()
 
+  __compiler_iar_ARM(C)
+  __compiler_check_default_language_standard(C 1.10 90 6.10 99 8.10 11)
 
-if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
+elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
+  __compiler_iar_AVR(C)
   set(CMAKE_C_OUTPUT_EXTENSION ".r90")
 
   if(NOT CMAKE_C_LINK_FLAGS)
@@ -29,9 +33,8 @@ if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
   set(CMAKE_C_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
   set(CMAKE_C_CREATE_STATIC_LIBRARY "<CMAKE_AR> -o <TARGET> <OBJECTS> ")
 
+  # add the target specific include directory:
+  get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
+  get_filename_component(_compilerDir "${_compilerDir}" PATH)
+  include_directories("${_compilerDir}/inc" )
 endif()
-
-# add the target specific include directory:
-get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
-get_filename_component(_compilerDir "${_compilerDir}" PATH)
-include_directories("${_compilerDir}/inc" )
diff --git a/Modules/Compiler/IAR-CXX.cmake b/Modules/Compiler/IAR-CXX.cmake
index f49968e..7a6ba2b 100644
--- a/Modules/Compiler/IAR-CXX.cmake
+++ b/Modules/Compiler/IAR-CXX.cmake
@@ -1,24 +1,39 @@
 # This file is processed when the IAR compiler is used for a C++ file
 
 include(Compiler/IAR)
+include(Compiler/CMakeCommonCompilerMacros)
+
+if("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
+  # "(extended) embedded C++" Mode
+  # old version: --ec++ or --eec++
+  # since 8.10:  --c++ --no_exceptions --no_rtti
+  #
+  # --c++ is full C++ and supported since 6.10
+  if(NOT CMAKE_IAR_CXX_FLAG)
+    if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.10)
+      set(CMAKE_IAR_CXX_FLAG --c++)
+    else()
+      set(CMAKE_IAR_CXX_FLAG --eec++)
+    endif()
+  endif()
 
-set(CMAKE_CXX_COMPILE_OBJECT  "<CMAKE_CXX_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
-
-set(CMAKE_CXX_CREATE_PREPROCESSED_SOURCE "<CMAKE_CXX_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
-set(CMAKE_CXX_CREATE_ASSEMBLY_SOURCE     "<CMAKE_CXX_COMPILER> <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
-
-set(CMAKE_CXX_RESPONSE_FILE_LINK_FLAG "-f ")
-set(CMAKE_DEPFILE_FLAGS_CXX "--dependencies=ns <DEPFILE>")
-
-if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "ARM")
+  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION -e)
 
-  set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
-  set(CMAKE_CXX_CREATE_STATIC_LIBRARY "<CMAKE_AR> <TARGET> --create <LINK_FLAGS> <OBJECTS> ")
-
-endif()
+  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.10)
+  set(CMAKE_CXX03_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX03_EXTENSION_COMPILE_OPTION -e)
+  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION -e)
+  set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION -e)
+  endif()
 
+  __compiler_iar_ARM(CXX)
+  __compiler_check_default_language_standard(CXX 6.10 98 8.10 14)
 
-if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
+elseif("${CMAKE_CXX_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
+  __compiler_iar_AVR(CXX)
   set(CMAKE_CXX_OUTPUT_EXTENSION ".r90")
   if(NOT CMAKE_CXX_LINK_FLAGS)
     set(CMAKE_CXX_LINK_FLAGS "-Fmotorola")
@@ -27,9 +42,8 @@ if("${IAR_TARGET_ARCHITECTURE}" STREQUAL "AVR")
   set(CMAKE_CXX_LINK_EXECUTABLE "<CMAKE_LINKER> <OBJECTS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
   set(CMAKE_CXX_CREATE_STATIC_LIBRARY "<CMAKE_AR> -o <TARGET> <OBJECTS> ")
 
+  # add the target specific include directory:
+  get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
+  get_filename_component(_compilerDir "${_compilerDir}" PATH)
+  include_directories("${_compilerDir}/inc")
 endif()
-
-# add the target specific include directory:
-get_filename_component(_compilerDir "${CMAKE_C_COMPILER}" PATH)
-get_filename_component(_compilerDir "${_compilerDir}" PATH)
-include_directories("${_compilerDir}/inc")
diff --git a/Modules/Compiler/IAR-DetermineCompiler.cmake b/Modules/Compiler/IAR-DetermineCompiler.cmake
index c39810a..4ef587b 100644
--- a/Modules/Compiler/IAR-DetermineCompiler.cmake
+++ b/Modules/Compiler/IAR-DetermineCompiler.cmake
@@ -1,4 +1,18 @@
-
 # IAR Systems compiler for embedded systems.
 #   http://www.iar.com
-set(_compiler_id_pp_test "defined(__IAR_SYSTEMS_ICC__ ) || defined(__IAR_SYSTEMS_ICC)")
+#   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
+# __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.
+
+set(_compiler_id_pp_test "defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)")
+
+set(_compiler_id_version_compute "
+# if defined(__VER__)
+#  define @PREFIX at COMPILER_VERSION_MAJOR @MACRO_DEC@((__VER__) / 1000000)
+#  define @PREFIX at COMPILER_VERSION_MINOR @MACRO_DEC@(((__VER__) / 1000) % 1000)
+#  define @PREFIX at COMPILER_VERSION_PATCH @MACRO_DEC@((__VER__) % 1000)
+# endif")
diff --git a/Modules/Compiler/IAR-FindBinUtils.cmake b/Modules/Compiler/IAR-FindBinUtils.cmake
new file mode 100644
index 0000000..2b04795
--- /dev/null
+++ b/Modules/Compiler/IAR-FindBinUtils.cmake
@@ -0,0 +1,54 @@
+if(NOT DEFINED _CMAKE_PROCESSING_LANGUAGE OR _CMAKE_PROCESSING_LANGUAGE STREQUAL "")
+  message(FATAL_ERROR "Internal error: _CMAKE_PROCESSING_LANGUAGE is not set")
+endif()
+
+# Try to find tools in the same directory as Clang itself
+get_filename_component(__iar_hint_1 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" REALPATH)
+get_filename_component(__iar_hint_1 "${__iar_hint_1}" DIRECTORY)
+
+get_filename_component(__iar_hint_2 "${CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER}" DIRECTORY)
+
+set(__iar_hints "${__iar_hint_1}" "${__iar_hint_2}")
+
+if("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM")
+  # could allow using normal binutils ar, since objects are normal ELF files?
+  find_program(CMAKE_IAR_LINKARM ilinkarm.exe HINTS ${__iar_hints}
+      DOC "The IAR ARM linker")
+  find_program(CMAKE_IAR_ARCHIVE iarchive.exe HINTS ${__iar_hints}
+      DOC "The IAR archiver")
+
+  # find auxillary tools
+  find_program(CMAKE_IAR_ELFTOOL ielftool.exe HINTS ${__iar_hints}
+      DOC "The IAR ELF Tool")
+    find_program(CMAKE_IAR_ELFDUMP ielfdumparm.exe HINTS ${__iar_hints}
+      DOC "The IAR ELF Dumper")
+  find_program(CMAKE_IAR_OBJMANIP iobjmanip.exe HINTS ${__iar_hints}
+      DOC "The IAR ELF Object Tool")
+  find_program(CMAKE_IAR_SYMEXPORT isymexport.exe HINTS ${__iar_hints}
+      DOC "The IAR Absolute Symbol Exporter")
+  mark_as_advanced(CMAKE_IAR_LINKARM CMAKE_IAR_ARCHIVE CMAKE_IAR_ELFTOOL CMAKE_IAR_ELFDUMP CMAKE_IAR_OBJMANIP CMAKE_IAR_SYMEXPORT)
+
+  set(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_CUSTOM_CODE
+"set(CMAKE_IAR_LINKARM \"${CMAKE_IAR_LINKARM}\")
+set(CMAKE_IAR_ARCHIVE \"${CMAKE_IAR_ARCHIVE}\")
+set(CMAKE_IAR_ELFTOOL \"${CMAKE_IAR_ELFTOOL}\")
+set(CMAKE_IAR_ELFDUMP \"${CMAKE_IAR_ELFDUMP}\")
+set(CMAKE_IAR_OBJMANIP \"${CMAKE_IAR_OBJMANIP}\")
+set(CMAKE_IAR_LINKARM \"${CMAKE_IAR_LINKARM}\")
+")
+
+
+elseif("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "AVR")
+
+  # For AVR and AVR32, IAR uses the "xlink" linker and the "xar" archiver:
+  find_program(CMAKE_IAR_LINKER xlink.exe HINTS ${__iar_hints}
+      DOC "The IAR AVR linker")
+  find_program(CMAKE_IAR_AR xar.exe HINTS ${__iar_hints}
+      DOC "The IAR archiver")
+  mark_as_advanced(CMAKE_IAR_LINKER CMAKE_IAR_AR)
+
+  set(CMAKE_${_CMAKE_PROCESSING_LANGUAGE}_COMPILER_CUSTOM_CODE
+"set(CMAKE_IAR_LINKER \"${CMAKE_IAR_LINKER}\")
+set(CMAKE_IAR_AR \"${CMAKE_IAR_AR}\")
+")
+endif()
diff --git a/Modules/Compiler/IAR.cmake b/Modules/Compiler/IAR.cmake
index 8c45276..52ebaf2 100644
--- a/Modules/Compiler/IAR.cmake
+++ b/Modules/Compiler/IAR.cmake
@@ -2,46 +2,75 @@
 # Documentation can be downloaded here: http://www.iar.com/website1/1.0.1.0/675/1/
 # The initial feature request is here: https://gitlab.kitware.com/cmake/cmake/issues/10176
 # It also contains additional links and information.
+# See USER GUIDES -> C/C++ Development Guide and ReleaseNotes for:
+# version 6.30.8: http://supp.iar.com/FilesPublic/UPDINFO/006607/arm/doc/infocenter/index.ENU.html
+# version 7.60.1: http://supp.iar.com/FilesPublic/UPDINFO/011006/arm/doc/infocenter/index.ENU.html
+# version 8.10.1: http://netstorage.iar.com/SuppDB/Public/UPDINFO/011854/arm/doc/infocenter/index.ENU.html
 
-if(_IAR_CMAKE_LOADED)
+# C/C++ Standard versions
+#
+# IAR typically only supports one C and C++ Standard version,
+# the exception is C89 which is always supported and can be selected
+# if its not the default
+#
+# C++ is trickier, there were historically 3 switches,
+# and some IAR versions support multiple of those.
+# they are --eec++, --ec++ and --c++ and where used to
+# enable various language features like exceptions
+#
+# recent versions only have --c++ for full support
+# but can choose to disable features with further arguments
+#
+# C/C++ Standard compliance
+#
+# IAR has 3 modes: default, strict and extended
+# the extended mode is needed for popular libraries like CMSIS
+#
+# "Silent" Operation
+#
+# this really is different to most programs I know.
+# nothing meaningfull from the operation is lost, just some redundant
+# code and data size printouts (that can be inspected with common tools).
+
+# This module is shared by multiple languages; use include blocker.
+if(_IARARM_CMAKE_LOADED)
   return()
 endif()
-set(_IAR_CMAKE_LOADED TRUE)
+set(_IARARM_CMAKE_LOADED 1)
 
+macro(__compiler_iar_ARM lang)
+  set(CMAKE_EXECUTABLE_SUFFIX ".elf")
+  if (${lang} STREQUAL "C" OR ${lang} STREQUAL "CXX")
 
-get_filename_component(_CMAKE_C_TOOLCHAIN_LOCATION "${CMAKE_C_COMPILER}" PATH)
-get_filename_component(_CMAKE_CXX_TOOLCHAIN_LOCATION "${CMAKE_CXX_COMPILER}" PATH)
-get_filename_component(_CMAKE_ASM_TOOLCHAIN_LOCATION "${CMAKE_ASM_COMPILER}" PATH)
+    set(CMAKE_${lang}_COMPILE_OBJECT             "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -o <OBJECT>")
+    set(CMAKE_${lang}_CREATE_PREPROCESSED_SOURCE "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> --preprocess=cnl <PREPROCESSED_SOURCE>")
+    set(CMAKE_${lang}_CREATE_ASSEMBLY_SOURCE     "<CMAKE_${lang}_COMPILER> ${CMAKE_IAR_${lang}_FLAG} --silent <SOURCE> <DEFINES> <INCLUDES> <FLAGS> -lAH <ASSEMBLY_SOURCE> -o <OBJECT>.dummy")
 
+    set(CMAKE_${lang}_RESPONSE_FILE_LINK_FLAG "-f ")
+    set(CMAKE_DEPFILE_FLAGS_${lang} "--dependencies=ns <DEPFILE>")
 
-if("${CMAKE_C_COMPILER}" MATCHES "arm"  OR  "${CMAKE_CXX_COMPILER}" MATCHES "arm"  OR  "${CMAKE_ASM_COMPILER}" MATCHES "arm")
-  set(CMAKE_EXECUTABLE_SUFFIX ".elf")
+    string(APPEND CMAKE_${lang}_FLAGS_INIT " ")
+    string(APPEND CMAKE_${lang}_FLAGS_DEBUG_INIT " -r")
+    string(APPEND CMAKE_${lang}_FLAGS_MINSIZEREL_INIT " -Ohz -DNDEBUG")
+    string(APPEND CMAKE_${lang}_FLAGS_RELEASE_INIT " -Oh -DNDEBUG")
+    string(APPEND CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT " -Oh -r -DNDEBUG")
+  endif()
 
-  # For arm, IAR uses the "ilinkarm" linker and "iarchive" archiver:
-  find_program(CMAKE_IAR_LINKER ilinkarm HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}")
-  find_program(CMAKE_IAR_AR iarchive HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}" )
+  set(CMAKE_${lang}_LINK_EXECUTABLE "\"${CMAKE_IAR_LINKARM}\" --silent <OBJECTS> <CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES> -o <TARGET>")
+  set(CMAKE_${lang}_CREATE_STATIC_LIBRARY "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_CREATE "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --create <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_APPEND "\"${CMAKE_IAR_ARCHIVE}\" <TARGET> --replace <LINK_FLAGS> <OBJECTS>")
+  set(CMAKE_${lang}_ARCHIVE_FINISH "")
 
-  set(IAR_TARGET_ARCHITECTURE "ARM" CACHE STRING "IAR compiler target architecture")
-endif()
+  set(CMAKE_LINKER "${CMAKE_IAR_LINKARM}" CACHE FILEPATH "The IAR linker" FORCE)
+  set(CMAKE_AR "${CMAKE_IAR_ARCHIVE}" CACHE FILEPATH "The IAR archiver" FORCE)
+endmacro()
 
-if("${CMAKE_C_COMPILER}" MATCHES "avr"  OR  "${CMAKE_CXX_COMPILER}" MATCHES "avr"  OR  "${CMAKE_ASM_COMPILER}" MATCHES "avr")
+macro(__compiler_iar_AVR lang)
   set(CMAKE_EXECUTABLE_SUFFIX ".bin")
 
-  # For AVR and AVR32, IAR uses the "xlink" linker and the "xar" archiver:
-  find_program(CMAKE_IAR_LINKER xlink HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}" )
-  find_program(CMAKE_IAR_AR xar HINTS "${_CMAKE_C_TOOLCHAIN_LOCATION}" "${_CMAKE_CXX_TOOLCHAIN_LOCATION}" "${_CMAKE_ASM_TOOLCHAIN_LOCATION}" )
-
-  set(IAR_TARGET_ARCHITECTURE "AVR" CACHE STRING "IAR compiler target architecture")
-
   set(CMAKE_LIBRARY_PATH_FLAG "-I")
 
-endif()
-
-if(NOT IAR_TARGET_ARCHITECTURE)
-  message(FATAL_ERROR "The IAR compiler for this architecture is not yet supported "
-          "by CMake. Please go to https://gitlab.kitware.com/cmake/cmake/issues "
-          "and enter a feature request there.")
-endif()
-
-set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
-set(CMAKE_AR "${CMAKE_IAR_AR}" CACHE FILEPATH "The IAR archiver" FORCE)
+  set(CMAKE_LINKER "${CMAKE_IAR_LINKER}" CACHE FILEPATH "The IAR linker" FORCE)
+  set(CMAKE_AR "${CMAKE_IAR_AR}" CACHE FILEPATH "The IAR archiver" FORCE)
+endmacro()

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0b1a2876c817a00daf7027570b1976a9e15ff654
commit 0b1a2876c817a00daf7027570b1976a9e15ff654
Author:     Norbert Lange <nolange79 at gmail.com>
AuthorDate: Tue Jun 27 22:52:22 2017 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:25:57 2017 -0400

    Add a CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID variable
    
    Compilers such as MSVC and IAR may have variants that target different
    architectures.  We have been using a `MSVC_<LANG>_ARCHITECTURE_ID`
    variable to hold this information for MSVC.  Add an alternative with a
    more general name (later we can port MSVC to it too).
    
    This additional information may be needed to generate proper invocations
    of the compiler based on its architecture variant.

diff --git a/Help/manual/cmake-variables.7.rst b/Help/manual/cmake-variables.7.rst
index 1a2726d..f889980 100644
--- a/Help/manual/cmake-variables.7.rst
+++ b/Help/manual/cmake-variables.7.rst
@@ -386,6 +386,7 @@ Variables for Languages
    /variable/CMAKE_LANG_ARCHIVE_FINISH
    /variable/CMAKE_LANG_COMPILER
    /variable/CMAKE_LANG_COMPILER_ABI
+   /variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID
    /variable/CMAKE_LANG_COMPILER_EXTERNAL_TOOLCHAIN
    /variable/CMAKE_LANG_COMPILER_ID
    /variable/CMAKE_LANG_COMPILER_LOADED
diff --git a/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst b/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
new file mode 100644
index 0000000..054c648
--- /dev/null
+++ b/Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
@@ -0,0 +1,8 @@
+CMAKE_<LANG>_COMPILER_ARCHITECTURE_ID
+-------------------------------------
+
+An internal variable subject to change.
+
+This is used to identify the variant of a compiler based on its target
+architecture.  For some compilers this is needed to determine the correct
+usage.
diff --git a/Modules/CMakeASMCompiler.cmake.in b/Modules/CMakeASMCompiler.cmake.in
index 2decc32..a6465f6 100644
--- a/Modules/CMakeASMCompiler.cmake.in
+++ b/Modules/CMakeASMCompiler.cmake.in
@@ -9,6 +9,7 @@ set(CMAKE_ASM at ASM_DIALECT@_COMPILER_LOADED 1)
 set(CMAKE_ASM at ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@")
 set(CMAKE_ASM at ASM_DIALECT@_COMPILER_VERSION "@_CMAKE_ASM_COMPILER_VERSION@")
 set(CMAKE_ASM at ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@")
+ at _SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID@
 
 set(CMAKE_ASM at ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
 set(CMAKE_ASM at ASM_DIALECT@_LINKER_PREFERENCE 0)
diff --git a/Modules/CMakeCCompiler.cmake.in b/Modules/CMakeCCompiler.cmake.in
index 974a579..92259dd 100644
--- a/Modules/CMakeCCompiler.cmake.in
+++ b/Modules/CMakeCCompiler.cmake.in
@@ -12,6 +12,7 @@ set(CMAKE_C11_COMPILE_FEATURES "@CMAKE_C11_COMPILE_FEATURES@")
 set(CMAKE_C_PLATFORM_ID "@CMAKE_C_PLATFORM_ID@")
 set(CMAKE_C_SIMULATE_ID "@CMAKE_C_SIMULATE_ID@")
 set(CMAKE_C_SIMULATE_VERSION "@CMAKE_C_SIMULATE_VERSION@")
+ at _SET_CMAKE_C_COMPILER_ARCHITECTURE_ID@
 @SET_MSVC_C_ARCHITECTURE_ID@
 @SET_CMAKE_XCODE_CURRENT_ARCH@
 set(CMAKE_AR "@CMAKE_AR@")
diff --git a/Modules/CMakeCXXCompiler.cmake.in b/Modules/CMakeCXXCompiler.cmake.in
index fda7950..47fc624 100644
--- a/Modules/CMakeCXXCompiler.cmake.in
+++ b/Modules/CMakeCXXCompiler.cmake.in
@@ -13,6 +13,7 @@ set(CMAKE_CXX17_COMPILE_FEATURES "@CMAKE_CXX17_COMPILE_FEATURES@")
 set(CMAKE_CXX_PLATFORM_ID "@CMAKE_CXX_PLATFORM_ID@")
 set(CMAKE_CXX_SIMULATE_ID "@CMAKE_CXX_SIMULATE_ID@")
 set(CMAKE_CXX_SIMULATE_VERSION "@CMAKE_CXX_SIMULATE_VERSION@")
+ at _SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID@
 @SET_MSVC_CXX_ARCHITECTURE_ID@
 @SET_CMAKE_XCODE_CURRENT_ARCH@
 set(CMAKE_AR "@CMAKE_AR@")
diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index 1ed4e20..b4779bf 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -170,6 +170,13 @@ foreach(_var
   set(_CMAKE_ASM_${_var} "${CMAKE_ASM${ASM_DIALECT}_${_var}}")
 endforeach()
 
+if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID)
+  set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID
+    "set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARCHITECTURE_ID})")
+else()
+  set(_SET_CMAKE_ASM_COMPILER_ARCHITECTURE_ID "")
+endif()
+
 # configure variables set in this file for fast reload later on
 configure_file(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
   ${CMAKE_PLATFORM_INFO_DIR}/CMakeASM${ASM_DIALECT}Compiler.cmake @ONLY)
diff --git a/Modules/CMakeDetermineCCompiler.cmake b/Modules/CMakeDetermineCCompiler.cmake
index 3caccde..fcbda20 100644
--- a/Modules/CMakeDetermineCCompiler.cmake
+++ b/Modules/CMakeDetermineCCompiler.cmake
@@ -170,6 +170,13 @@ set(_CMAKE_PROCESSING_LANGUAGE "C")
 include(Compiler/${CMAKE_C_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 
+if(CMAKE_C_COMPILER_ARCHITECTURE_ID)
+  set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID
+    "set(CMAKE_C_COMPILER_ARCHITECTURE_ID ${CMAKE_C_COMPILER_ARCHITECTURE_ID})")
+else()
+  set(_SET_CMAKE_C_COMPILER_ARCHITECTURE_ID "")
+endif()
+
 if(MSVC_C_ARCHITECTURE_ID)
   set(SET_MSVC_C_ARCHITECTURE_ID
     "set(MSVC_C_ARCHITECTURE_ID ${MSVC_C_ARCHITECTURE_ID})")
diff --git a/Modules/CMakeDetermineCXXCompiler.cmake b/Modules/CMakeDetermineCXXCompiler.cmake
index 9150962..612dbb4 100644
--- a/Modules/CMakeDetermineCXXCompiler.cmake
+++ b/Modules/CMakeDetermineCXXCompiler.cmake
@@ -165,6 +165,13 @@ set(_CMAKE_PROCESSING_LANGUAGE "CXX")
 include(Compiler/${CMAKE_CXX_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 
+if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID)
+  set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID
+    "set(CMAKE_CXX_COMPILER_ARCHITECTURE_ID ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID})")
+else()
+  set(_SET_CMAKE_CXX_COMPILER_ARCHITECTURE_ID "")
+endif()
+
 if(MSVC_CXX_ARCHITECTURE_ID)
   set(SET_MSVC_CXX_ARCHITECTURE_ID
     "set(MSVC_CXX_ARCHITECTURE_ID ${MSVC_CXX_ARCHITECTURE_ID})")
diff --git a/Modules/CMakeDetermineCompilerId.cmake b/Modules/CMakeDetermineCompilerId.cmake
index eeb806f..59aac5c 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -102,6 +102,7 @@ function(CMAKE_DETERMINE_COMPILER_ID lang flagvar src)
 
   set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
   set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
+  set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
   set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
     PARENT_SCOPE)
   set(CMAKE_${lang}_XCODE_CURRENT_ARCH "${CMAKE_${lang}_XCODE_CURRENT_ARCH}" PARENT_SCOPE)
@@ -576,6 +577,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
     if(COMPILER_ID AND NOT COMPILER_ID_TWICE)
       set(CMAKE_${lang}_COMPILER_ID "${COMPILER_ID}")
       set(CMAKE_${lang}_PLATFORM_ID "${PLATFORM_ID}")
+      set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
       set(MSVC_${lang}_ARCHITECTURE_ID "${ARCHITECTURE_ID}")
       set(CMAKE_${lang}_COMPILER_VERSION "${COMPILER_VERSION}")
       set(CMAKE_${lang}_SIMULATE_ID "${SIMULATE_ID}")
@@ -625,6 +627,7 @@ function(CMAKE_DETERMINE_COMPILER_ID_CHECK lang file)
   # Return the information extracted.
   set(CMAKE_${lang}_COMPILER_ID "${CMAKE_${lang}_COMPILER_ID}" PARENT_SCOPE)
   set(CMAKE_${lang}_PLATFORM_ID "${CMAKE_${lang}_PLATFORM_ID}" PARENT_SCOPE)
+  set(CMAKE_${lang}_COMPILER_ARCHITECTURE_ID "${CMAKE_${lang}_COMPILER_ARCHITECTURE_ID}" PARENT_SCOPE)
   set(MSVC_${lang}_ARCHITECTURE_ID "${MSVC_${lang}_ARCHITECTURE_ID}"
     PARENT_SCOPE)
   set(CMAKE_${lang}_COMPILER_VERSION "${CMAKE_${lang}_COMPILER_VERSION}" PARENT_SCOPE)
diff --git a/Modules/CMakeDetermineFortranCompiler.cmake b/Modules/CMakeDetermineFortranCompiler.cmake
index d5220b4..5559640 100644
--- a/Modules/CMakeDetermineFortranCompiler.cmake
+++ b/Modules/CMakeDetermineFortranCompiler.cmake
@@ -261,6 +261,13 @@ set(_CMAKE_PROCESSING_LANGUAGE "Fortran")
 include(Compiler/${CMAKE_Fortran_COMPILER_ID}-FindBinUtils OPTIONAL)
 unset(_CMAKE_PROCESSING_LANGUAGE)
 
+if(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID)
+  set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID
+    "set(CMAKE_Fortran_COMPILER_ARCHITECTURE_ID ${CMAKE_Fortran_COMPILER_ARCHITECTURE_ID})")
+else()
+  set(_SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID "")
+endif()
+
 if(MSVC_Fortran_ARCHITECTURE_ID)
   set(SET_MSVC_Fortran_ARCHITECTURE_ID
     "set(MSVC_Fortran_ARCHITECTURE_ID ${MSVC_Fortran_ARCHITECTURE_ID})")
diff --git a/Modules/CMakeFortranCompiler.cmake.in b/Modules/CMakeFortranCompiler.cmake.in
index d521190..2e34cbb 100644
--- a/Modules/CMakeFortranCompiler.cmake.in
+++ b/Modules/CMakeFortranCompiler.cmake.in
@@ -6,6 +6,7 @@ set(CMAKE_Fortran_COMPILER_WRAPPER "@CMAKE_Fortran_COMPILER_WRAPPER@")
 set(CMAKE_Fortran_PLATFORM_ID "@CMAKE_Fortran_PLATFORM_ID@")
 set(CMAKE_Fortran_SIMULATE_ID "@CMAKE_Fortran_SIMULATE_ID@")
 set(CMAKE_Fortran_SIMULATE_VERSION "@CMAKE_Fortran_SIMULATE_VERSION@")
+ at _SET_CMAKE_Fortran_COMPILER_ARCHITECTURE_ID@
 @SET_MSVC_Fortran_ARCHITECTURE_ID@
 set(CMAKE_AR "@CMAKE_AR@")
 set(CMAKE_Fortran_COMPILER_AR "@CMAKE_Fortran_COMPILER_AR@")

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fea7d69ddeedd72f6a1f8cec5a011696dec832db
commit fea7d69ddeedd72f6a1f8cec5a011696dec832db
Author:     Norbert Lange <nolange79 at gmail.com>
AuthorDate: Tue Jun 27 22:50:04 2017 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:25:57 2017 -0400

    Store CMAKE_ASM_COMPILER_VERSION persistently
    
    We already do this for other languages like C and CXX.

diff --git a/Modules/CMakeASMCompiler.cmake.in b/Modules/CMakeASMCompiler.cmake.in
index 7b94d0f..2decc32 100644
--- a/Modules/CMakeASMCompiler.cmake.in
+++ b/Modules/CMakeASMCompiler.cmake.in
@@ -7,8 +7,10 @@ set(CMAKE_ASM at ASM_DIALECT@_COMPILER_RANLIB "@_CMAKE_ASM_COMPILER_RANLIB@")
 set(CMAKE_LINKER "@CMAKE_LINKER@")
 set(CMAKE_ASM at ASM_DIALECT@_COMPILER_LOADED 1)
 set(CMAKE_ASM at ASM_DIALECT@_COMPILER_ID "@_CMAKE_ASM_COMPILER_ID@")
+set(CMAKE_ASM at ASM_DIALECT@_COMPILER_VERSION "@_CMAKE_ASM_COMPILER_VERSION@")
 set(CMAKE_ASM at ASM_DIALECT@_COMPILER_ENV_VAR "@_CMAKE_ASM_COMPILER_ENV_VAR@")
 
 set(CMAKE_ASM at ASM_DIALECT@_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
 set(CMAKE_ASM at ASM_DIALECT@_LINKER_PREFERENCE 0)
 
+ at CMAKE_ASM_COMPILER_CUSTOM_CODE@
diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index 34154b4..1ed4e20 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -106,7 +106,13 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
 endif()
 
 if(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
-  message(STATUS "The ASM${ASM_DIALECT} compiler identification is ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}")
+  if(CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION)
+    set(_version " ${CMAKE_ASM${ASM_DIALECT}_COMPILER_VERSION}")
+  else()
+    set(_version "")
+  endif()
+  message(STATUS "The ASM${ASM_DIALECT} compiler identification is ${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}${_version}")
+  unset(_version)
 else()
   message(STATUS "The ASM${ASM_DIALECT} compiler identification is unknown")
 endif()
@@ -152,20 +158,30 @@ else()
   message(STATUS "Didn't find assembler")
 endif()
 
-
-set(_CMAKE_ASM_COMPILER "${CMAKE_ASM${ASM_DIALECT}_COMPILER}")
-set(_CMAKE_ASM_COMPILER_ID "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ID}")
-set(_CMAKE_ASM_COMPILER_ARG1 "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ARG1}")
-set(_CMAKE_ASM_COMPILER_ENV_VAR "${CMAKE_ASM${ASM_DIALECT}_COMPILER_ENV_VAR}")
-set(_CMAKE_ASM_COMPILER_AR "${CMAKE_ASM${ASM_DIALECT}_COMPILER_AR}")
-set(_CMAKE_ASM_COMPILER_RANLIB "${CMAKE_ASM${ASM_DIALECT}_COMPILER_RANLIB}")
+foreach(_var
+    COMPILER
+    COMPILER_ID
+    COMPILER_ARG1
+    COMPILER_ENV_VAR
+    COMPILER_AR
+    COMPILER_RANLIB
+    COMPILER_VERSION
+    )
+  set(_CMAKE_ASM_${_var} "${CMAKE_ASM${ASM_DIALECT}_${_var}}")
+endforeach()
 
 # configure variables set in this file for fast reload later on
 configure_file(${CMAKE_ROOT}/Modules/CMakeASMCompiler.cmake.in
   ${CMAKE_PLATFORM_INFO_DIR}/CMakeASM${ASM_DIALECT}Compiler.cmake @ONLY)
 
-set(_CMAKE_ASM_COMPILER)
-set(_CMAKE_ASM_COMPILER_ARG1)
-set(_CMAKE_ASM_COMPILER_ENV_VAR)
-set(_CMAKE_ASM_COMPILER_AR)
-set(_CMAKE_ASM_COMPILER_RANLIB)
+foreach(_var
+    COMPILER
+    COMPILER_ID
+    COMPILER_ARG1
+    COMPILER_ENV_VAR
+    COMPILER_AR
+    COMPILER_RANLIB
+    COMPILER_VERSION
+    )
+  unset(_CMAKE_ASM_${_var})
+endforeach()

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d2a8b5cea6baa0508f9935ac2327fcf63f52c21a
commit d2a8b5cea6baa0508f9935ac2327fcf63f52c21a
Author:     Norbert Lange <nolange79 at gmail.com>
AuthorDate: Thu Jun 15 14:49:28 2017 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:25:57 2017 -0400

    CMakeDetermineASMCompiler: Fix small copy-paste mistake
    
    GNU is not a vendor of IAR.

diff --git a/Modules/CMakeDetermineASMCompiler.cmake b/Modules/CMakeDetermineASMCompiler.cmake
index 87c6b28..34154b4 100644
--- a/Modules/CMakeDetermineASMCompiler.cmake
+++ b/Modules/CMakeDetermineASMCompiler.cmake
@@ -84,7 +84,7 @@ if(NOT CMAKE_ASM${ASM_DIALECT}_COMPILER_ID)
   set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_TI "-h")
   set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_TI "Texas Instruments")
 
-  list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS GNU IAR)
+  list(APPEND CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDORS IAR)
   set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_FLAGS_IAR )
   set(CMAKE_ASM${ASM_DIALECT}_COMPILER_ID_VENDOR_REGEX_IAR "IAR Assembler")
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a2112257df2f255d8aa3584af468b7d30ff90e8c
commit a2112257df2f255d8aa3584af468b7d30ff90e8c
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jun 29 13:18:33 2017 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:25:19 2017 -0400

    Add infrastructure to use language extensions without any standard
    
    When `<LANG>_STANDARD` is not set we will not add any language standard
    flags.  If `<LANG>_EXTENSIONS` is not OFF then our default is supposed
    to be ON.  In order to support compilers that do not enable their
    extensions by default, check a `CMAKE_<LANG>_EXTENSION_COMPILE_OPTION`
    variable for an extensions flag to use without any language standard.
    
    Suggested-by: Norbert Lange <nolange79 at gmail.com>

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 54e76b2..28ed325 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1498,6 +1498,16 @@ void cmLocalGenerator::AddCompilerRequirementFlag(
   std::string stdProp = lang + "_STANDARD";
   const char* standardProp = target->GetProperty(stdProp);
   if (!standardProp) {
+    if (ext) {
+      // No language standard is specified and extensions are not disabled.
+      // Check if this compiler needs a flag to enable extensions.
+      std::string const option_flag =
+        "CMAKE_" + lang + "_EXTENSION_COMPILE_OPTION";
+      if (const char* opt =
+            target->Target->GetMakefile()->GetDefinition(option_flag)) {
+        this->AppendFlagEscape(flags, opt);
+      }
+    }
     return;
   }
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8cd28bb0e54f962ab2b189f1b7196c2b014129a7
commit 8cd28bb0e54f962ab2b189f1b7196c2b014129a7
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jun 29 13:16:45 2017 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:22:32 2017 -0400

    cmLocalGenerator: Switch order of <LANG>_{EXTENSIONS,STANDARD} check

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index f2c4644..54e76b2 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1488,11 +1488,6 @@ void cmLocalGenerator::AddCompilerRequirementFlag(
     // This compiler has no notion of language standard levels.
     return;
   }
-  std::string stdProp = lang + "_STANDARD";
-  const char* standardProp = target->GetProperty(stdProp);
-  if (!standardProp) {
-    return;
-  }
   std::string extProp = lang + "_EXTENSIONS";
   bool ext = true;
   if (const char* extPropValue = target->GetProperty(extProp)) {
@@ -1500,6 +1495,11 @@ void cmLocalGenerator::AddCompilerRequirementFlag(
       ext = false;
     }
   }
+  std::string stdProp = lang + "_STANDARD";
+  const char* standardProp = target->GetProperty(stdProp);
+  if (!standardProp) {
+    return;
+  }
 
   std::string const type = ext ? "EXTENSION" : "STANDARD";
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0fc2d78ee97cb0ba73040be353bdedd4fc03c2b9
commit 0fc2d78ee97cb0ba73040be353bdedd4fc03c2b9
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Jun 29 13:14:53 2017 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Jun 29 13:22:32 2017 -0400

    cmLocalGenerator: Simplify logic for language standard or extension flag

diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 8e00303..f2c4644 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1494,15 +1494,15 @@ void cmLocalGenerator::AddCompilerRequirementFlag(
     return;
   }
   std::string extProp = lang + "_EXTENSIONS";
-  std::string type = "EXTENSION";
   bool ext = true;
   if (const char* extPropValue = target->GetProperty(extProp)) {
     if (cmSystemTools::IsOff(extPropValue)) {
       ext = false;
-      type = "STANDARD";
     }
   }
 
+  std::string const type = ext ? "EXTENSION" : "STANDARD";
+
   if (target->GetPropertyAsBool(lang + "_STANDARD_REQUIRED")) {
     std::string option_flag =
       "CMAKE_" + lang + standardProp + "_" + type + "_COMPILE_OPTION";

-----------------------------------------------------------------------

Summary of changes:
 Help/manual/cmake-variables.7.rst                  |    1 +
 Help/release/dev/iar.rst                           |    4 +
 .../CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst        |    8 ++
 Help/variable/CMAKE_LANG_COMPILER_ID.rst           |    1 +
 Modules/CMakeASMCompiler.cmake.in                  |    3 +
 Modules/CMakeCCompiler.cmake.in                    |    1 +
 Modules/CMakeCXXCompiler.cmake.in                  |    1 +
 Modules/CMakeDetermineASMCompiler.cmake            |   69 ++++++++++++----
 Modules/CMakeDetermineCCompiler.cmake              |    7 ++
 Modules/CMakeDetermineCXXCompiler.cmake            |   10 +++
 Modules/CMakeDetermineCompilerId.cmake             |    4 +
 Modules/CMakeDetermineFortranCompiler.cmake        |    7 ++
 Modules/CMakeFortranCompiler.cmake.in              |    1 +
 Modules/CMakePlatformId.h.in                       |   10 +++
 Modules/Compiler/IAR-ASM.cmake                     |   17 ++--
 Modules/Compiler/IAR-C.cmake                       |   43 +++++-----
 Modules/Compiler/IAR-CXX.cmake                     |   52 +++++++-----
 Modules/Compiler/IAR-DetermineCompiler.cmake       |   18 +++-
 Modules/Compiler/IAR-FindBinUtils.cmake            |   54 ++++++++++++
 Modules/Compiler/IAR.cmake                         |   87 +++++++++++++-------
 Modules/FindDoxygen.cmake                          |   14 +++-
 Source/cmCTest.cxx                                 |    3 +-
 Source/cmLocalGenerator.cxx                        |   24 ++++--
 Source/cmVS10CLFlagTable.h                         |    3 +-
 Source/cmVS11CLFlagTable.h                         |    3 +-
 Source/cmVS12CLFlagTable.h                         |    3 +-
 Source/cmVS140CLFlagTable.h                        |    3 +-
 Source/cmVS141CLFlagTable.h                        |    3 +-
 28 files changed, 349 insertions(+), 105 deletions(-)
 create mode 100644 Help/release/dev/iar.rst
 create mode 100644 Help/variable/CMAKE_LANG_COMPILER_ARCHITECTURE_ID.rst
 create mode 100644 Modules/Compiler/IAR-FindBinUtils.cmake


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list