OSDN Git Service

msbuild: Set _MSC_VER to match the CRT we're using
authorReid Kleckner <reid@kleckner.net>
Thu, 19 Sep 2013 17:18:35 +0000 (17:18 +0000)
committerReid Kleckner <reid@kleckner.net>
Thu, 19 Sep 2013 17:18:35 +0000 (17:18 +0000)
Various Windows SDK headers use _MSC_VER values to figure out what
version of the VC++ headers they're using, in particular for SAL macros.

Patch by Paul Hampson!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@191015 91177308-0d34-0410-b5e6-96231b3b80d8

tools/msbuild/CMakeLists.txt
tools/msbuild/Microsoft.Cpp.Win32.llvm.props.in

index 8de3b88..894645a 100644 (file)
@@ -8,14 +8,17 @@ if (WIN32)
   set(REG_KEY "${CMAKE_PROJECT_NAME} ${CPACK_PACKAGE_VERSION}")
 
   set(VS_VERSION "v100")
+  set(MSC_VERSION "1600")
   configure_file(${prop_file_in} ${prop_file_v100})
   set(VS_VERSION "v110")
+  set(MSC_VERSION "1700")
   configure_file(${prop_file_in} ${prop_file_v110})
   set(VS_VERSION "v110_xp")
   configure_file(${prop_file_in} ${prop_file_v110_xp})
 
   set(REG_KEY)
   set(VS_VERSION)
+  set(MSC_VERSION)
   install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v100}" DESTINATION tools/msbuild)
   install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v110}" DESTINATION tools/msbuild)
   install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${prop_file_v110_xp}" DESTINATION tools/msbuild)
index 07e931f..fce6011 100644 (file)
@@ -7,4 +7,11 @@
     <ExecutablePath>$(LLVMInstallDir)\msbuild-bin;$(ExecutablePath)</ExecutablePath>\r
     <LibraryPath>$(LLVMInstallDir)\lib\clang\3.4\lib\windows;$(LibraryPath)</LibraryPath>\r
   </PropertyGroup>\r
+\r
+  <ItemDefinitionGroup>\r
+    <ClCompile>\r
+      <!-- Set the value of _MSC_VER to claim for compatibility -->\r
+      <AdditionalOptions>-fmsc-version=@MSC_VERSION@ %(AdditionalOptions)</AdditionalOptions>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
 </Project>\r