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, next has been updated
       via  8eb1b66b1259d4940c66ab3665f1e64c75cb0271 (commit)
       via  eab942590281310493aa9f82b460ee601bf87939 (commit)
       via  4c8a101e81a48dee6df7054dbe603da7685283a8 (commit)
       via  5fdd7b6b5fcd32b72b059415d66f0e991fd77aec (commit)
       via  d1e9d12191038378496c44c89885162df3e7b297 (commit)
       via  71c09356b02fd43da38488a5a0c18738e087a436 (commit)
       via  7726767af37ed49eb68b1674ab1ecf12d85276ec (commit)
       via  1a902f240eebe23a846340a49fa4230a73a96b7d (commit)
       via  2ec615000b04b10f91469a4dddeddb1e5ed53479 (commit)
       via  384a9f6b0aeddaefc83b36429be0cf7c6edac36c (commit)
       via  99b38f32bf0c8aedd01ec79cc97e3f5ab0e7dbe3 (commit)
       via  1f913700e6f5dce49fbd48b997f771d1f8f6fe29 (commit)
       via  0a0c98ce0a45ca9fcba2830b7b06c571238f313c (commit)
      from  ed3c228dc0ae7145a581c16278ffb2a534299403 (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=8eb1b66b1259d4940c66ab3665f1e64c75cb0271
commit 8eb1b66b1259d4940c66ab3665f1e64c75cb0271
Merge: ed3c228 eab9425
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Wed Mar 9 09:36:49 2016 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Wed Mar 9 09:36:49 2016 -0500

    Merge topic 'vs-clang-cl' into next
    
    eab94259 Help: Add notes for topic 'vs-clang-cl'
    4c8a101e Tests: do not build PrecompiledHeader on Clang/C2
    5fdd7b6b Tests: fix PDBDirectoryAndName on Clang/C2
    d1e9d121 Tests: fix Plugin building on Clang/C2
    71c09356 Tests: fix complexOneConfig building on Clang/C2
    7726767a Tests: fix Complex building on Clang/C2
    1a902f24 Tests: fix Module.GenerateExportHeader building on Clang/C2
    2ec61500 Tests: fix AliasTarget building on Clang/C2
    384a9f6b VS 14: Add flag map for -std= to CppLanguageStandard tag in 
project files
    99b38f32 Features: Clang has no cxx_decltype_incomplete_return_type in MSVC 
sim mode
    1f913700 VS: in Clang/C2 toolset, setup correct compiler settings
    0a0c98ce CMakeDetermineCompilerId: Add detection of clang.exe bundled with 
VS


https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=eab942590281310493aa9f82b460ee601bf87939
commit eab942590281310493aa9f82b460ee601bf87939
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Mar 8 09:48:23 2016 -0500
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:39 2016 -0500

    Help: Add notes for topic 'vs-clang-cl'

diff --git a/Help/release/dev/vs-clang-cl.rst b/Help/release/dev/vs-clang-cl.rst
new file mode 100644
index 0000000..ac09188
--- /dev/null
+++ b/Help/release/dev/vs-clang-cl.rst
@@ -0,0 +1,5 @@
+vs-clang-cl
+-----------
+
+* The :generator:`Visual Studio 14 2015` generator learned to support the
+  Clang/C2 toolsets, e.g. with the ``-T v140_clang_3_7`` option.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=4c8a101e81a48dee6df7054dbe603da7685283a8
commit 4c8a101e81a48dee6df7054dbe603da7685283a8
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Tue Feb 23 23:20:32 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:15 2016 -0500

    Tests: do not build PrecompiledHeader on Clang/C2

diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index c7d2138..a4b8757 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1744,7 +1744,9 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P 
${CMake_SOURCE_DIR}/Utilities/Release
   if(MSVC)
     ADD_TEST_MACRO(ForceInclude foo)
     ADD_TEST_MACRO(PDBDirectoryAndName myexe)
-    ADD_TEST_MACRO(PrecompiledHeader foo)
+    if(NOT CMAKE_C_COMPILER_ID STREQUAL "Clang")
+      ADD_TEST_MACRO(PrecompiledHeader foo)
+    endif()
   endif()
   if(MSVC OR
       "${CMAKE_GENERATOR}" MATCHES "(MSYS|MinGW) Makefiles")

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=5fdd7b6b5fcd32b72b059415d66f0e991fd77aec
commit 5fdd7b6b5fcd32b72b059415d66f0e991fd77aec
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Sun Feb 21 01:17:29 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:15 2016 -0500

    Tests: fix PDBDirectoryAndName on Clang/C2

diff --git a/Tests/PDBDirectoryAndName/CMakeLists.txt 
b/Tests/PDBDirectoryAndName/CMakeLists.txt
index 180f9fe..5fd69ef 100644
--- a/Tests/PDBDirectoryAndName/CMakeLists.txt
+++ b/Tests/PDBDirectoryAndName/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 2.8)
+cmake_policy(SET CMP0054 NEW)
 project(PDBDirectoryAndName C)
 
 # Make sure the proper compiler is in use.
@@ -62,6 +63,14 @@ list(APPEND my_targets myexe2)
 
 target_link_libraries(myexe2 mylibA mylibD)
 
+
+# Clang/C2 does not produce pdb files for static libraries
+if (CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_C_SIMULATE_ID STREQUAL "MSVC")
+  list(REMOVE_ITEM my_targets mylibB mylibD)
+endif()
+
+
 #-----------------------------------------------------------------------------
 # Check that PDB files actually appear where expected.
 

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d1e9d12191038378496c44c89885162df3e7b297
commit d1e9d12191038378496c44c89885162df3e7b297
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Sun Feb 21 00:24:14 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:15 2016 -0500

    Tests: fix Plugin building on Clang/C2

diff --git a/Tests/Plugin/CMakeLists.txt b/Tests/Plugin/CMakeLists.txt
index 2b7bac1..49ff317 100644
--- a/Tests/Plugin/CMakeLists.txt
+++ b/Tests/Plugin/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required (VERSION 2.6)
+cmake_policy(SET CMP0054 NEW)
 project(Plugin)
 
 # Test per-target output directory properties.
@@ -34,6 +35,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA")
 endif ()
 
+# Clang/C2 in C++98 mode cannot properly handle some of MSVC headers
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+  set(CMAKE_CXX_STANDARD 11)
+endif()
+
 # Create an executable that exports an API for use by plugins.
 add_executable(example_exe src/example_exe.cxx)
 set_target_properties(example_exe PROPERTIES

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=71c09356b02fd43da38488a5a0c18738e087a436
commit 71c09356b02fd43da38488a5a0c18738e087a436
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Sat Feb 20 16:52:40 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:15 2016 -0500

    Tests: fix complexOneConfig building on Clang/C2

diff --git a/Tests/ComplexOneConfig/CMakeLists.txt 
b/Tests/ComplexOneConfig/CMakeLists.txt
index 3b73e70..2d92809 100644
--- a/Tests/ComplexOneConfig/CMakeLists.txt
+++ b/Tests/ComplexOneConfig/CMakeLists.txt
@@ -2,6 +2,7 @@
 # A more complex test case
 #
 cmake_minimum_required(VERSION 2.4)
+cmake_policy(SET CMP0054 NEW)
 project (Complex)
 
 # Try setting a new policy.  The IF test is for coverage.
@@ -401,6 +402,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA")
 endif ()
 
+# Clang/C2 in C++98 mode cannot properly handle some of MSVC headers
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+  set(CMAKE_CXX_STANDARD 11)
+endif()
+
 #
 # Create the libs and the main exe
 #

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=7726767af37ed49eb68b1674ab1ecf12d85276ec
commit 7726767af37ed49eb68b1674ab1ecf12d85276ec
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Sat Feb 20 00:34:51 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:14 2016 -0500

    Tests: fix Complex building on Clang/C2

diff --git a/Tests/Complex/CMakeLists.txt b/Tests/Complex/CMakeLists.txt
index 9251ff3..83ca7f4 100644
--- a/Tests/Complex/CMakeLists.txt
+++ b/Tests/Complex/CMakeLists.txt
@@ -2,6 +2,7 @@
 # A more complex test case
 #
 cmake_minimum_required(VERSION 2.4)
+cmake_policy(SET CMP0054 NEW)
 project (Complex)
 
 # Test that renaming a built-in works when configured multiple times.
@@ -438,6 +439,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA")
 endif ()
 
+# Clang/C2 in C++98 mode cannot properly handle some of MSVC headers
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+  set(CMAKE_CXX_STANDARD 11)
+endif()
+
 #
 # Create the libs and the main exe
 #

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1a902f240eebe23a846340a49fa4230a73a96b7d
commit 1a902f240eebe23a846340a49fa4230a73a96b7d
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Fri Feb 19 22:17:00 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:14 2016 -0500

    Tests: fix Module.GenerateExportHeader building on Clang/C2

diff --git a/Tests/Module/GenerateExportHeader/CMakeLists.txt 
b/Tests/Module/GenerateExportHeader/CMakeLists.txt
index 7fce330..8b94ca7 100644
--- a/Tests/Module/GenerateExportHeader/CMakeLists.txt
+++ b/Tests/Module/GenerateExportHeader/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)
+cmake_policy(SET CMP0054 NEW)
 
 project(GenerateExportHeader)
 
@@ -66,6 +67,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA")
 endif ()
 
+# Clang/C2 in C++98 mode cannot properly handle some of MSVC headers
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+  set(CMAKE_CXX_STANDARD 11)
+endif()
+
 add_subdirectory(lib_shared_and_static)
 
 add_compiler_export_flags()
@@ -107,7 +114,10 @@ add_executable(GenerateExportHeader exportheader_test.cpp)
 
 target_link_libraries(GenerateExportHeader ${link_libraries})
 if (WIN32 OR CYGWIN)
-  if(MSVC AND COMPILER_HAS_DEPRECATED)
+  if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+    set(_platform Win32-Clang)
+  elseif(MSVC AND COMPILER_HAS_DEPRECATED)
     set(_platform Win32)
   elseif((MINGW OR CYGWIN) AND COMPILER_HAS_DEPRECATED)
     set(_platform MinGW)
diff --git 
a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h 
b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
new file mode 100644
index 0000000..d376631
--- /dev/null
+++ b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libshared_export.h
@@ -0,0 +1,41 @@
+
+#ifndef LIBSHARED_EXPORT_H
+#define LIBSHARED_EXPORT_H
+
+#ifdef LIBSHARED_STATIC_DEFINE
+#  define LIBSHARED_EXPORT
+#  define LIBSHARED_NO_EXPORT
+#else
+#  ifndef LIBSHARED_EXPORT
+#    ifdef libshared_EXPORTS
+        /* We are building this library */
+#      define LIBSHARED_EXPORT __declspec(dllexport)
+#    else
+        /* We are using this library */
+#      define LIBSHARED_EXPORT __declspec(dllimport)
+#    endif
+#  endif
+
+#  ifndef LIBSHARED_NO_EXPORT
+#    define LIBSHARED_NO_EXPORT
+#  endif
+#endif
+
+#ifndef LIBSHARED_DEPRECATED
+#  define LIBSHARED_DEPRECATED __attribute__ ((__deprecated__))
+#endif
+
+#ifndef LIBSHARED_DEPRECATED_EXPORT
+#  define LIBSHARED_DEPRECATED_EXPORT LIBSHARED_EXPORT LIBSHARED_DEPRECATED
+#endif
+
+#ifndef LIBSHARED_DEPRECATED_NO_EXPORT
+#  define LIBSHARED_DEPRECATED_NO_EXPORT LIBSHARED_NO_EXPORT 
LIBSHARED_DEPRECATED
+#endif
+
+#define DEFINE_NO_DEPRECATED 0
+#if DEFINE_NO_DEPRECATED
+# define LIBSHARED_NO_DEPRECATED
+#endif
+
+#endif
diff --git 
a/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h 
b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
new file mode 100644
index 0000000..fd021e9
--- /dev/null
+++ b/Tests/Module/GenerateExportHeader/reference/Win32-Clang/libstatic_export.h
@@ -0,0 +1,41 @@
+
+#ifndef LIBSTATIC_EXPORT_H
+#define LIBSTATIC_EXPORT_H
+
+#ifdef LIBSTATIC_STATIC_DEFINE
+#  define LIBSTATIC_EXPORT
+#  define LIBSTATIC_NO_EXPORT
+#else
+#  ifndef LIBSTATIC_EXPORT
+#    ifdef libstatic_EXPORTS
+        /* We are building this library */
+#      define LIBSTATIC_EXPORT
+#    else
+        /* We are using this library */
+#      define LIBSTATIC_EXPORT
+#    endif
+#  endif
+
+#  ifndef LIBSTATIC_NO_EXPORT
+#    define LIBSTATIC_NO_EXPORT
+#  endif
+#endif
+
+#ifndef LIBSTATIC_DEPRECATED
+#  define LIBSTATIC_DEPRECATED __attribute__ ((__deprecated__))
+#endif
+
+#ifndef LIBSTATIC_DEPRECATED_EXPORT
+#  define LIBSTATIC_DEPRECATED_EXPORT LIBSTATIC_EXPORT LIBSTATIC_DEPRECATED
+#endif
+
+#ifndef LIBSTATIC_DEPRECATED_NO_EXPORT
+#  define LIBSTATIC_DEPRECATED_NO_EXPORT LIBSTATIC_NO_EXPORT 
LIBSTATIC_DEPRECATED
+#endif
+
+#define DEFINE_NO_DEPRECATED 0
+#if DEFINE_NO_DEPRECATED
+# define LIBSTATIC_NO_DEPRECATED
+#endif
+
+#endif

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2ec615000b04b10f91469a4dddeddb1e5ed53479
commit 2ec615000b04b10f91469a4dddeddb1e5ed53479
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Fri Feb 19 01:08:33 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:14 2016 -0500

    Tests: fix AliasTarget building on Clang/C2

diff --git a/Tests/AliasTarget/CMakeLists.txt b/Tests/AliasTarget/CMakeLists.txt
index e1d8966..47ccbdc 100644
--- a/Tests/AliasTarget/CMakeLists.txt
+++ b/Tests/AliasTarget/CMakeLists.txt
@@ -1,4 +1,5 @@
 cmake_minimum_required(VERSION 2.8.11)
+cmake_policy(SET CMP0054 NEW)
 project(AliasTarget)
 
 set(CMAKE_CXX_STANDARD 98)
@@ -10,6 +11,12 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL HP AND
   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -AA")
 endif ()
 
+# Clang/C2 in C++98 mode cannot properly handle some of MSVC headers
+if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND
+    CMAKE_CXX_SIMULATE_ID STREQUAL "MSVC")
+  set(CMAKE_CXX_STANDARD 11)
+endif()
+
 add_library(foo SHARED empty.cpp)
 add_library(PREFIX::Foo ALIAS foo)
 add_library(Another::Alias ALIAS foo)

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=384a9f6b0aeddaefc83b36429be0cf7c6edac36c
commit 384a9f6b0aeddaefc83b36429be0cf7c6edac36c
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Sat Feb 20 15:22:26 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:14 2016 -0500

    VS 14: Add flag map for -std= to CppLanguageStandard tag in project files
    
    This is used by the Clang/C2 toolset.

diff --git a/Source/cmVS14CLFlagTable.h b/Source/cmVS14CLFlagTable.h
index 1c9cf7c..173f624 100644
--- a/Source/cmVS14CLFlagTable.h
+++ b/Source/cmVS14CLFlagTable.h
@@ -174,6 +174,24 @@ static cmVS7FlagTable cmVS14CLFlagTable[] =
   {"CompileAsManaged", "clr:oldSyntax",
    "Common Language RunTime Support, Old Syntax", "OldSyntax", 0},
 
+  {"CppLanguageStandard", "",
+   "Default", "Default", 0},
+  {"CppLanguageStandard", "std=c++98",
+   "C++03", "c++98", 0},
+  {"CppLanguageStandard", "std=c++11",
+   "C++11", "c++11", 0},
+  {"CppLanguageStandard", "std=c++1y",
+   "C++14", "c++1y", 0 },
+  {"CppLanguageStandard", "std=c++14",
+   "C++14", "c++1y", 0 },
+  {"CppLanguageStandard", "std=gnu++98",
+   "C++03 (GNU Dialect)", "gnu++98", 0},
+  {"CppLanguageStandard", "std=gnu++11",
+   "C++11 (GNU Dialect)", "gnu++11", 0},
+  {"CppLanguageStandard", "std=gnu++1y",
+   "C++14 (GNU Dialect)", "gnu++1y", 0},
+  {"CppLanguageStandard", "std=gnu++14",
+   "C++14 (GNU Dialect)", "gnu++1y", 0},
 
   //Bool Properties
   {"CompileAsWinRT", "ZW", "", "true", 0},

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=99b38f32bf0c8aedd01ec79cc97e3f5ab0e7dbe3
commit 99b38f32bf0c8aedd01ec79cc97e3f5ab0e7dbe3
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Thu Feb 18 23:54:08 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:14 2016 -0500

    Features: Clang has no cxx_decltype_incomplete_return_type in MSVC sim mode

diff --git a/Modules/Compiler/Clang-CXX-TestableFeatures.cmake 
b/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
index b39475c..69965a6 100644
--- a/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
+++ b/Modules/Compiler/Clang-CXX-TestableFeatures.cmake
@@ -8,7 +8,6 @@ set(testable_features
   cxx_constexpr
   cxx_contextual_conversions
   cxx_decltype
-  cxx_decltype_incomplete_return_types
   cxx_default_function_template_args
   cxx_defaulted_functions
   cxx_delegating_constructors
@@ -36,6 +35,9 @@ set(testable_features
   cxx_variable_templates
   cxx_variadic_templates
 )
+if(NOT "x${CMAKE_CXX_SIMULATE_ID}" STREQUAL "xMSVC")
+  list(APPEND testable_features cxx_decltype_incomplete_return_types)
+endif()
 
 foreach(feature ${testable_features})
   set(_cmake_feature_test_${feature} "${_cmake_oldestSupported} && 
__has_feature(${feature})")

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1f913700e6f5dce49fbd48b997f771d1f8f6fe29
commit 1f913700e6f5dce49fbd48b997f771d1f8f6fe29
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Thu Feb 18 01:06:52 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:13 2016 -0500

    VS: in Clang/C2 toolset, setup correct compiler settings

diff --git a/Modules/Platform/Windows-MSVC.cmake 
b/Modules/Platform/Windows-MSVC.cmake
index a61413a..528cde3 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -194,8 +194,14 @@ else()
   if(_MSVC_C_ARCHITECTURE_FAMILY STREQUAL "ARM" OR 
_MSVC_CXX_ARCHITECTURE_FAMILY STREQUAL "ARM")
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib")
   elseif(MSVC_VERSION GREATER 1310)
-    set(_RTC1 "/RTC1")
-    set(_FLAGS_CXX " /GR /EHsc")
+    if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
+      # Clang/C2 in MSVC14 Update 1 seems to not support -fsantinize (yet?)
+      # set(_RTC1 "-fsantinize=memory,safe-stack")
+      set(_FLAGS_CXX " -frtti -fexceptions")
+    else()
+      set(_RTC1 "/RTC1")
+      set(_FLAGS_CXX " /GR /EHsc")
+    endif()
     set(CMAKE_C_STANDARD_LIBRARIES_INIT "kernel32.lib user32.lib gdi32.lib 
winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib 
advapi32.lib")
   else()
     set(_RTC1 "/GZ")
@@ -296,11 +302,21 @@ macro(__windows_compiler_msvc lang)
   set(CMAKE_${lang}_LINK_EXECUTABLE
     "${_CMAKE_VS_LINK_EXE}<CMAKE_LINKER> ${CMAKE_CL_NOLOGO} <OBJECTS> 
${CMAKE_START_TEMP_FILE} /out:<TARGET> /implib:<TARGET_IMPLIB> 
/pdb:<TARGET_PDB> 
/version:<TARGET_VERSION_MAJOR>.<TARGET_VERSION_MINOR>${_PLATFORM_LINK_FLAGS} 
<CMAKE_${lang}_LINK_FLAGS> <LINK_FLAGS> <LINK_LIBRARIES>${CMAKE_END_TEMP_FILE}")
 
-  set(CMAKE_${lang}_FLAGS_INIT 
"${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS 
/W3${_FLAGS_${lang}}")
-  set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od ${_RTC1}")
-  set(CMAKE_${lang}_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG")
-  set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG")
-  set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG")
+  if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
+    # note: MSVC 14 2015 Update 1 sets -fno-ms-compatibility by default, but 
this does not allow to compile many projects
+    # that include MS's own headers. CMake itself is affected project too.
+    set(CMAKE_${lang}_FLAGS_INIT 
"${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} -fms-extensions 
-fms-compatibility -D_WINDOWS -Wall${_FLAGS_${lang}}")
+    set(CMAKE_${lang}_FLAGS_DEBUG_INIT "-D_DEBUG /MDd -gline-tables-only 
-fno-inline -O0 ${_RTC1}")
+    set(CMAKE_${lang}_FLAGS_RELEASE_INIT "/MD -O2 -D NDEBUG")
+    set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/MD -gline-tables-only -O2 
-fno-inline -D NDEBUG")
+    set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD -Os -D NDEBUG")
+  else()
+    set(CMAKE_${lang}_FLAGS_INIT 
"${_PLATFORM_DEFINES}${_PLATFORM_DEFINES_${lang}} /D_WINDOWS 
/W3${_FLAGS_${lang}}")
+    set(CMAKE_${lang}_FLAGS_DEBUG_INIT "/D_DEBUG /MDd /Zi /Ob0 /Od ${_RTC1}")
+    set(CMAKE_${lang}_FLAGS_RELEASE_INIT "/MD /O2 /Ob2 /D NDEBUG")
+    set(CMAKE_${lang}_FLAGS_RELWITHDEBINFO_INIT "/MD /Zi /O2 /Ob1 /D NDEBUG")
+    set(CMAKE_${lang}_FLAGS_MINSIZEREL_INIT "/MD /O1 /Ob1 /D NDEBUG")
+  endif()
   set(CMAKE_${lang}_LINKER_SUPPORTS_PDB ON)
   set(CMAKE_NINJA_DEPTYPE_${lang} msvc)
 
diff --git a/Source/cmVS14CLFlagTable.h b/Source/cmVS14CLFlagTable.h
index 422f47b..1c9cf7c 100644
--- a/Source/cmVS14CLFlagTable.h
+++ b/Source/cmVS14CLFlagTable.h
@@ -28,6 +28,8 @@ static cmVS7FlagTable cmVS14CLFlagTable[] =
    "Custom", "Custom", 0},
   {"Optimization", "Od",
    "Disabled", "Disabled", 0},
+  {"Optimization", "Os",
+   "Minimize Size", "MinSize", 0},
   {"Optimization", "O1",
    "Minimize Size", "MinSpace", 0},
   {"Optimization", "O2",
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx 
b/Source/cmVisualStudio10TargetGenerator.cxx
index 27a01a3..3b79087 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2078,7 +2078,17 @@ void cmVisualStudio10TargetGenerator::WriteClOptions(
 
   if(this->MSTools)
     {
-    this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
+    cmsys::RegularExpression clangToolset("v[0-9]+_clang_.*");
+    if (clangToolset.find(this->GlobalGenerator->GetPlatformToolset()))
+      {
+      this->WriteString("<ObjectFileName>"
+                        "$(IntDir)%(filename).obj"
+                        "</ObjectFileName>\n", 3);
+      }
+    else
+      {
+      this->WriteString("<ObjectFileName>$(IntDir)</ObjectFileName>\n", 3);
+      }
 
     // If not in debug mode, write the DebugInformationFormat field
     // without value so PDBs don't get generated uselessly.

https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0a0c98ce0a45ca9fcba2830b7b06c571238f313c
commit 0a0c98ce0a45ca9fcba2830b7b06c571238f313c
Author:     Mariusz Pluciński <mplucin...@mplucinski.com>
AuthorDate: Wed Feb 17 23:51:12 2016 +0100
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Wed Mar 9 09:20:13 2016 -0500

    CMakeDetermineCompilerId: Add detection of clang.exe bundled with VS
    
    When using a clang toolset we need to find `clang.exe` instead of
    `cl.exe`.

diff --git a/Modules/CMakeDetermineCompilerId.cmake 
b/Modules/CMakeDetermineCompilerId.cmake
index feae1c4..fbfd7a9 100644
--- a/Modules/CMakeDetermineCompilerId.cmake
+++ b/Modules/CMakeDetermineCompilerId.cmake
@@ -157,7 +157,11 @@ Id flags: ${testflags}
     set(vs_version ${CMAKE_MATCH_1})
     set(id_platform ${CMAKE_VS_PLATFORM_NAME})
     set(id_lang "${lang}")
-    set(id_cl cl.exe)
+    if(CMAKE_VS_PLATFORM_TOOLSET MATCHES "v[0-9]+_clang_.*")
+      set(id_cl clang.exe)
+    else()
+      set(id_cl cl.exe)
+    endif()
     if(CMAKE_VS_PLATFORM_NAME STREQUAL "Tegra-Android")
       set(v NsightTegra)
       set(ext vcxproj)

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

Summary of changes:
 Help/release/dev/vs-clang-cl.rst                   |    5 ++++
 Modules/CMakeDetermineCompilerId.cmake             |    6 +++-
 Modules/Compiler/Clang-CXX-TestableFeatures.cmake  |    4 ++-
 Modules/Platform/Windows-MSVC.cmake                |   30 +++++++++++++++-----
 Source/cmVS14CLFlagTable.h                         |   20 +++++++++++++
 Source/cmVisualStudio10TargetGenerator.cxx         |   12 +++++++-
 Tests/AliasTarget/CMakeLists.txt                   |    7 +++++
 Tests/CMakeLists.txt                               |    4 ++-
 Tests/Complex/CMakeLists.txt                       |    7 +++++
 Tests/ComplexOneConfig/CMakeLists.txt              |    7 +++++
 Tests/Module/GenerateExportHeader/CMakeLists.txt   |   12 +++++++-
 .../{MinGW => Win32-Clang}/libshared_export.h      |    0
 .../{MinGW => Win32-Clang}/libstatic_export.h      |    0
 Tests/PDBDirectoryAndName/CMakeLists.txt           |    9 ++++++
 Tests/Plugin/CMakeLists.txt                        |    7 +++++
 15 files changed, 118 insertions(+), 12 deletions(-)
 create mode 100644 Help/release/dev/vs-clang-cl.rst
 copy Tests/Module/GenerateExportHeader/reference/{MinGW => 
Win32-Clang}/libshared_export.h (100%)
 copy Tests/Module/GenerateExportHeader/reference/{MinGW => 
Win32-Clang}/libstatic_export.h (100%)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/mailman/listinfo/cmake-commits

Reply via email to