[Cmake-commits] CMake branch, master, updated. v3.9.0-rc5-181-ge40e8f5

Kitware Robot kwrobot at kitware.com
Wed Jun 28 09:05:02 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  e40e8f5c4216ac1e176342887d1af95965528344 (commit)
       via  c67bb5bae386b323746c6d471a25272e9e497792 (commit)
      from  0552747b58799afd6cb23db1cc5296a605cfde18 (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=e40e8f5c4216ac1e176342887d1af95965528344
commit e40e8f5c4216ac1e176342887d1af95965528344
Merge: 0552747 c67bb5b
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jun 28 12:55:08 2017 +0000
Commit:     Kitware Robot <kwrobot at kitware.com>
CommitDate: Wed Jun 28 08:55:12 2017 -0400

    Merge topic 'clang-cl-no-std'
    
    c67bb5ba Clang: Do not add '-std=' options when simulating MSVC
    
    Acked-by: Kitware Robot <kwrobot at kitware.com>
    Merge-request: !982


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c67bb5bae386b323746c6d471a25272e9e497792
commit c67bb5bae386b323746c6d471a25272e9e497792
Author:     Ruben Van Boxem <vanboxem.ruben at gmail.com>
AuthorDate: Sun Jun 18 00:39:09 2017 +0200
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Jun 27 13:04:41 2017 -0400

    Clang: Do not add '-std=' options when simulating MSVC
    
    The `cl.exe` style command line does not accept the `-std=` options.
    Instead behave like MSVC where we don't define standard levels.
    
    Fixes: #16266

diff --git a/Modules/Compiler/Clang-C.cmake b/Modules/Compiler/Clang-C.cmake
index b881e2b..a5f9d84 100644
--- a/Modules/Compiler/Clang-C.cmake
+++ b/Modules/Compiler/Clang-C.cmake
@@ -7,14 +7,30 @@ if(WIN32 OR (APPLE AND NOT appleClangPolicy STREQUAL NEW))
 endif()
 
 if(NOT CMAKE_C_COMPILER_VERSION VERSION_LESS 3.4)
-  set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
-  set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
+  if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+    set(CMAKE_C90_STANDARD_COMPILE_OPTION "-std=c90")
+    set(CMAKE_C90_EXTENSION_COMPILE_OPTION "-std=gnu90")
 
-  set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
-  set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
+    set(CMAKE_C99_STANDARD_COMPILE_OPTION "-std=c99")
+    set(CMAKE_C99_EXTENSION_COMPILE_OPTION "-std=gnu99")
 
-  set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
-  set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
+    set(CMAKE_C11_STANDARD_COMPILE_OPTION "-std=c11")
+    set(CMAKE_C11_EXTENSION_COMPILE_OPTION "-std=gnu11")
+  else()
+    # clang-cl doesn't have any of these
+    set(CMAKE_C90_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_C90_EXTENSION_COMPILE_OPTION "")
+
+    set(CMAKE_C99_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_C99_EXTENSION_COMPILE_OPTION "")
+
+    set(CMAKE_C11_STANDARD_COMPILE_OPTION "")
+    set(CMAKE_C11_EXTENSION_COMPILE_OPTION "")
+  endif()
 endif()
 
-__compiler_check_default_language_standard(C 3.4 99 3.6 11)
+if(NOT "x${CMAKE_C_SIMULATE_ID}" STREQUAL "xMSVC")
+  __compiler_check_default_language_standard(C 3.4 99 3.6 11)
+else()
+  set(CMAKE_C_STANDARD_DEFAULT "")
+endif()
diff --git a/Modules/Compiler/Clang-CXX.cmake b/Modules/Compiler/Clang-CXX.cmake
index d3707ee..efc68b3 100644
--- a/Modules/Compiler/Clang-CXX.cmake
+++ b/Modules/Compiler/Clang-CXX.cmake
@@ -10,30 +10,46 @@ if(APPLE AND NOT appleClangPolicy STREQUAL NEW)
   return()
 endif()
 
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
-  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
-  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
-endif()
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
+    set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "-std=c++98")
+    set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "-std=gnu++98")
+  endif()
 
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
-elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
-  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
-  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
-endif()
+  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.1)
+    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++11")
+    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++11")
+  elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 2.1)
+    set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "-std=c++0x")
+    set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=gnu++0x")
+  endif()
 
-if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
-  set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
-  set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
-elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
-  set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
-  set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
-endif()
+  if(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
+    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++14")
+    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++14")
+  elseif(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.4)
+    set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "-std=c++1y")
+    set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "-std=gnu++1y")
+  endif()
 
-if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
-  set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
-  set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+  if (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
+    set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "-std=c++1z")
+    set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "-std=gnu++1z")
+  endif()
+else()
+  # clang-cl does not know these options because it behaves like cl.exe
+  set(CMAKE_CXX98_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX98_EXTENSION_COMPILE_OPTION "")
+  set(CMAKE_CXX11_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "")
+  set(CMAKE_CXX14_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX14_EXTENSION_COMPILE_OPTION "")
+  set(CMAKE_CXX17_STANDARD_COMPILE_OPTION "")
+  set(CMAKE_CXX17_EXTENSION_COMPILE_OPTION "")
 endif()
 
-__compiler_check_default_language_standard(CXX 2.1 98)
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+  __compiler_check_default_language_standard(CXX 2.1 98)
+else()
+  set(CMAKE_CXX_STANDARD_DEFAULT "")
+endif()

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

Summary of changes:
 Modules/Compiler/Clang-C.cmake   |   30 ++++++++++++++-----
 Modules/Compiler/Clang-CXX.cmake |   60 ++++++++++++++++++++++++--------------
 2 files changed, 61 insertions(+), 29 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list