1
0
Эх сурвалжийг харах

VS: Update v140 flag tables from VS 15 MSBuild files

Run cmparseMSBuildXML.py on cl.xml, lib.xml, link.xml, and masm.xml to
generate our flag tables:

 python cmparseMSBuildXML.py -x ".../Common7/IDE/VC/VCTargets/1033/cl.xml" > cmVS14CLFlagTable.h
 python cmparseMSBuildXML.py -x ".../Common7/IDE/VC/VCTargets/1033/lib.xml" > cmVS14LibFlagTable.h
 python cmparseMSBuildXML.py -x ".../Common7/IDE/VC/VCTargets/1033/link.xml" > cmVS14LinkFlagTable.h
 python cmparseMSBuildXML.py -x ".../Common7/IDE/VC/VCTargets/BuildCustomizations/masm.xml" > cmVS14MASMFlagTable.h

Manually integrate the changes with those we've made since earlier
import to add the new flag mappings.
Brad King 9 жил өмнө
parent
commit
a8936656fa

+ 12 - 0
Source/cmVS14CLFlagTable.h

@@ -60,6 +60,9 @@ static cmVS7FlagTable cmVS14CLFlagTable[] = {
   { "BufferSecurityCheck", "GS-", "Disable Security Check", "false", 0 },
   { "BufferSecurityCheck", "GS", "Enable Security Check", "true", 0 },
 
+  { "ControlFlowGuard", "guard:cf", "Yes", "Guard", 0 },
+  { "ControlFlowGuard", "", "No", "false", 0 },
+
   { "EnableEnhancedInstructionSet", "arch:SSE", "Streaming SIMD Extensions",
     "StreamingSIMDExtensions", 0 },
   { "EnableEnhancedInstructionSet", "arch:SSE2", "Streaming SIMD Extensions 2",
@@ -76,6 +79,10 @@ static cmVS7FlagTable cmVS14CLFlagTable[] = {
   { "FloatingPointModel", "fp:strict", "Strict", "Strict", 0 },
   { "FloatingPointModel", "fp:fast", "Fast", "Fast", 0 },
 
+  { "LanguageStandard", "std:c++14", "ISO C++14 Standard", "stdcpp14", 0 },
+  { "LanguageStandard", "std:c++latest", "ISO C++ Latest Draft Standard",
+    "stdcpplatest", 0 },
+
   { "PrecompiledHeader", "Yc", "Create", "Create",
     cmVS7FlagTable::UserValueIgnored | cmVS7FlagTable::Continue },
   { "PrecompiledHeader", "Yu", "Use", "Use",
@@ -164,6 +171,9 @@ static cmVS7FlagTable cmVS14CLFlagTable[] = {
   { "TreatWChar_tAsBuiltInType", "Zc:wchar_t", "", "true", 0 },
   { "ForceConformanceInForLoopScope", "Zc:forScope-", "", "false", 0 },
   { "ForceConformanceInForLoopScope", "Zc:forScope", "", "true", 0 },
+  { "RemoveUnreferencedCodeData", "Zc:inline", "", "true", 0 },
+  { "EnforceTypeConversionRules", "Zc:rvalueCast-", "", "false", 0 },
+  { "EnforceTypeConversionRules", "Zc:rvalueCast", "", "true", 0 },
   { "RuntimeTypeInfo", "GR-", "", "false", 0 },
   { "RuntimeTypeInfo", "GR", "", "true", 0 },
   { "OpenMPSupport", "openmp-", "", "false", 0 },
@@ -215,6 +225,8 @@ static cmVS7FlagTable cmVS14CLFlagTable[] = {
     "", cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
 
   // String Properties
+  { "WarningVersion", "Wv:", "Warning Version", "",
+    cmVS7FlagTable::UserValue },
   // Skip [TrackerLogDirectory] - no command line Switch.
   { "PreprocessOutputPath", "Fi", "Preprocess Output Path", "",
     cmVS7FlagTable::UserValue },

+ 13 - 4
Source/cmVS14LinkFlagTable.h

@@ -35,6 +35,12 @@ static cmVS7FlagTable cmVS14LinkFlagTable[] = {
   { "UACExecutionLevel", "level='requireAdministrator'",
     "requireAdministrator", "RequireAdministrator", 0 },
 
+  { "GenerateDebugInformation", "DEBUG:FASTLINK",
+    "Optimize for faster linking", "DebugFastLink",
+    cmVS7FlagTable::CaseInsensitive },
+  { "GenerateDebugInformation", "DEBUG", "Optimize for debugging", "Debug",
+    cmVS7FlagTable::CaseInsensitive },
+
   { "SubSystem", "", "Not Set", "NotSet", 0 },
   { "SubSystem", "SUBSYSTEM:CONSOLE", "Console", "Console", 0 },
   { "SubSystem", "SUBSYSTEM:WINDOWS", "Windows", "Windows", 0 },
@@ -54,6 +60,8 @@ static cmVS7FlagTable cmVS14LinkFlagTable[] = {
   { "Driver", "DRIVER:WDM", "WDM", "WDM", 0 },
 
   { "LinkTimeCodeGeneration", "", "Default", "Default", 0 },
+  { "LinkTimeCodeGeneration", "LTCG:incremental",
+    "Use Fast Link Time Code Generation", "UseFastLinkTimeCodeGeneration", 0 },
   { "LinkTimeCodeGeneration", "LTCG", "Use Link Time Code Generation",
     "UseLinkTimeCodeGeneration", 0 },
   { "LinkTimeCodeGeneration", "LTCG:PGInstrument",
@@ -121,6 +129,9 @@ static cmVS7FlagTable cmVS14LinkFlagTable[] = {
   { "CLRSupportLastError", "CLRSupportLastError:SYSTEMDLL", "System Dlls Only",
     "SystemDlls", 0 },
 
+  { "LinkControlFlowGuard", "guard:cf", "Enable Security Check with Guard",
+    "Guard", 0 },
+
   // Bool Properties
   { "LinkIncremental", "INCREMENTAL:NO", "", "false", 0 },
   { "LinkIncremental", "INCREMENTAL", "", "true", 0 },
@@ -138,10 +149,6 @@ static cmVS7FlagTable cmVS14LinkFlagTable[] = {
   { "UACUIAccess", "uiAccess='false'", "", "false", 0 },
   { "UACUIAccess", "uiAccess='true'", "", "true", 0 },
   { "ManifestEmbed", "manifest:embed", "", "true", 0 },
-  { "GenerateDebugInformation", "DEBUG:FASTLINK", "", "DebugFastLink",
-    cmVS7FlagTable::CaseInsensitive },
-  { "GenerateDebugInformation", "DEBUG", "", "Debug",
-    cmVS7FlagTable::CaseInsensitive },
   { "MapExports", "MAPINFO:EXPORTS", "", "true", 0 },
   { "AssemblyDebug", "ASSEMBLYDEBUG:DISABLE", "", "false", 0 },
   { "AssemblyDebug", "ASSEMBLYDEBUG", "", "true", 0 },
@@ -195,6 +202,8 @@ static cmVS7FlagTable cmVS14LinkFlagTable[] = {
   { "AdditionalLibraryDirectories", "LIBPATH:",
     "Additional Library Directories", "",
     cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
+  { "Natvis", "NATVIS:", "Natvis files", "",
+    cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
   // Skip [AdditionalDependencies] - no command line Switch.
   { "IgnoreSpecificDefaultLibraries", "NODEFAULTLIB:",
     "Ignore Specific Default Libraries", "",

+ 3 - 0
Source/cmparseMSBuildXML.py

@@ -15,6 +15,9 @@
 #  "${PROGRAMFILES}/MSBuild/Microsoft.Cpp/v4.0/V140/1033/cl.xml"
 #  "${PROGRAMFILES}/MSBuild/Microsoft.Cpp/v4.0/V140/1033/lib.xml"
 #  "${PROGRAMFILES}/MSBuild/Microsoft.Cpp/v4.0/V140/1033/link.xml"
+#  "${PROGRAMFILES}/Microsoft Visual Studio/VS15Preview/Common7/IDE/VC/VCTargets/1033/cl.xml"
+#  "${PROGRAMFILES}/Microsoft Visual Studio/VS15Preview/Common7/IDE/VC/VCTargets/1033/lib.xml"
+#  "${PROGRAMFILES}/Microsoft Visual Studio/VS15Preview/Common7/IDE/VC/VCTargets/1033/link.xml"
 #
 #  BoolProperty  <Name>true|false</Name>
 #   simple example: