summaryrefslogtreecommitdiff
path: root/Templates
diff options
context:
space:
mode:
Diffstat (limited to 'Templates')
-rw-r--r--Templates/MSBuild/CustomBuildDepFile.targets48
-rw-r--r--Templates/MSBuild/FlagTables/v10_CSharp.json51
-rw-r--r--Templates/MSBuild/FlagTables/v10_Link.json9
-rw-r--r--Templates/MSBuild/FlagTables/v11_CSharp.json51
-rw-r--r--Templates/MSBuild/FlagTables/v11_Link.json9
-rw-r--r--Templates/MSBuild/FlagTables/v12_CSharp.json51
-rw-r--r--Templates/MSBuild/FlagTables/v12_Link.json9
-rw-r--r--Templates/MSBuild/FlagTables/v140_CSharp.json51
-rw-r--r--Templates/MSBuild/FlagTables/v140_Link.json9
-rw-r--r--Templates/MSBuild/FlagTables/v141_CL.json53
-rw-r--r--Templates/MSBuild/FlagTables/v141_CSharp.json51
-rw-r--r--Templates/MSBuild/FlagTables/v141_Link.json9
-rw-r--r--Templates/MSBuild/FlagTables/v142_CL.json253
-rw-r--r--Templates/MSBuild/FlagTables/v142_CSharp.json51
-rw-r--r--Templates/MSBuild/FlagTables/v142_Link.json9
-rw-r--r--Templates/TestDriver.cxx.in45
16 files changed, 406 insertions, 353 deletions
diff --git a/Templates/MSBuild/CustomBuildDepFile.targets b/Templates/MSBuild/CustomBuildDepFile.targets
new file mode 100644
index 000000000..2387ab539
--- /dev/null
+++ b/Templates/MSBuild/CustomBuildDepFile.targets
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!-- Update AdditionalInputs with depfile-discovered inputs. -->
+ <Target Name="CMakeCustomBuildDepFileAdditionalInputs" BeforeTargets="CustomBuild" Condition="'@(CustomBuild)' != ''">
+ <ItemGroup>
+ <!-- Save original AdditionalInputs generated by CMake. -->
+ <CustomBuild>
+ <CMakeAdditionalInputs>%(CustomBuild.AdditionalInputs)</CMakeAdditionalInputs>
+ </CustomBuild>
+ <!-- Read depfile-discovered inputs. -->
+ <CustomBuild Condition="Exists('%(CustomBuild.DepFileAdditionalInputsFile)')">
+ <DepFileAdditionalInputs>$([System.IO.File]::ReadAllText('%(CustomBuild.DepFileAdditionalInputsFile)').TrimEnd())</DepFileAdditionalInputs>
+ </CustomBuild>
+ <!-- Add depfile-discovered inputs to AdditionalInputs. -->
+ <CustomBuild Condition="'%(CustomBuild.DepFileAdditionalInputs)' != ''">
+ <AdditionalInputs Condition="'%(CustomBuild.AdditionalInputs)' == ''">%(CustomBuild.DepFileAdditionalInputs)</AdditionalInputs>
+ <AdditionalInputs Condition="'%(CustomBuild.AdditionalInputs)' != ''">%(CustomBuild.AdditionalInputs);%(CustomBuild.DepFileAdditionalInputs)</AdditionalInputs>
+ </CustomBuild>
+ </ItemGroup>
+ </Target>
+
+ <!-- Update the tracking log with depfile-discovered inputs. -->
+ <Target Name="CMakeCustomBuildDepFileTrackingLog" AfterTargets="CustomBuild" Condition="'@(CustomBuild)' != ''">
+ <!-- Compute the tracking log content for each CustomBuild item individually. -->
+ <ItemGroup>
+ <!-- Read depfile-discovered inputs. -->
+ <CustomBuild Condition="Exists('%(CustomBuild.DepFileAdditionalInputsFile)')">
+ <DepFileAdditionalInputs>$([System.IO.File]::ReadAllText('%(CustomBuild.DepFileAdditionalInputsFile)').TrimEnd())</DepFileAdditionalInputs>
+ </CustomBuild>
+ <!-- Generate tracking log representation of all inputs. -->
+ <CustomBuild>
+ <ReadTLog>^%(CustomBuild.Identity)&#xD;&#xA;</ReadTLog>
+ </CustomBuild>
+ <CustomBuild Condition="'%(CustomBuild.CMakeAdditionalInputs)' != ''">
+ <ReadTLog>%(ReadTLog)$([System.String]::Copy('%(CustomBuild.CMakeAdditionalInputs)').Trim(';').Replace(';', '&#xD;&#xA;'))&#xD;&#xA;</ReadTLog>
+ </CustomBuild>
+ <CustomBuild Condition="'%(CustomBuild.DepFileAdditionalInputs)' != ''">
+ <ReadTLog>%(ReadTLog)$([System.String]::Copy('%(CustomBuild.DepFileAdditionalInputs)').Trim(';').Replace(';', '&#xD;&#xA;'))&#xD;&#xA;</ReadTLog>
+ </CustomBuild>
+ </ItemGroup>
+ <!-- Compute the combined tracking log for all CustomBuild items together. -->
+ <PropertyGroup>
+ <CustomBuildReadTLog>@(CustomBuild->'%(ReadTLog)','')</CustomBuildReadTLog>
+ </PropertyGroup>
+ <!-- Replace the combined tracking log on disk. -->
+ <WriteLinesToFile File="$(TLogLocation)CustomBuild.read.1.tlog" Overwrite="true" Lines="$(CustomBuildReadTLog.ToUpper())" />
+ </Target>
+</Project>
diff --git a/Templates/MSBuild/FlagTables/v10_CSharp.json b/Templates/MSBuild/FlagTables/v10_CSharp.json
index 5989aea1e..9f21d9a27 100644
--- a/Templates/MSBuild/FlagTables/v10_CSharp.json
+++ b/Templates/MSBuild/FlagTables/v10_CSharp.json
@@ -363,52 +363,13 @@
},
{
"name": "LangVersion",
- "switch": "langversion:ISO-1",
+ "switch": "langversion:",
"comment": "",
- "value": "ISO-1",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:ISO-2",
- "comment": "",
- "value": "ISO-2",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:3",
- "comment": "",
- "value": "3",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:4",
- "comment": "",
- "value": "4",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:5",
- "comment": "",
- "value": "5",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:6",
- "comment": "",
- "value": "6",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:default",
- "comment": "",
- "value": "default",
- "flags": []
+ "value": "",
+ "flags": [
+ "UserValue",
+ "UserRequired"
+ ]
},
{
"name": "DelaySign",
diff --git a/Templates/MSBuild/FlagTables/v10_Link.json b/Templates/MSBuild/FlagTables/v10_Link.json
index ac5b8b16c..494774bc2 100644
--- a/Templates/MSBuild/FlagTables/v10_Link.json
+++ b/Templates/MSBuild/FlagTables/v10_Link.json
@@ -1090,15 +1090,6 @@
]
},
{
- "name": "MergeSections",
- "switch": "MERGE:",
- "comment": "Merge Sections",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
diff --git a/Templates/MSBuild/FlagTables/v11_CSharp.json b/Templates/MSBuild/FlagTables/v11_CSharp.json
index 5989aea1e..9f21d9a27 100644
--- a/Templates/MSBuild/FlagTables/v11_CSharp.json
+++ b/Templates/MSBuild/FlagTables/v11_CSharp.json
@@ -363,52 +363,13 @@
},
{
"name": "LangVersion",
- "switch": "langversion:ISO-1",
+ "switch": "langversion:",
"comment": "",
- "value": "ISO-1",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:ISO-2",
- "comment": "",
- "value": "ISO-2",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:3",
- "comment": "",
- "value": "3",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:4",
- "comment": "",
- "value": "4",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:5",
- "comment": "",
- "value": "5",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:6",
- "comment": "",
- "value": "6",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:default",
- "comment": "",
- "value": "default",
- "flags": []
+ "value": "",
+ "flags": [
+ "UserValue",
+ "UserRequired"
+ ]
},
{
"name": "DelaySign",
diff --git a/Templates/MSBuild/FlagTables/v11_Link.json b/Templates/MSBuild/FlagTables/v11_Link.json
index 5d5c13f21..0db5d9e05 100644
--- a/Templates/MSBuild/FlagTables/v11_Link.json
+++ b/Templates/MSBuild/FlagTables/v11_Link.json
@@ -1225,15 +1225,6 @@
]
},
{
- "name": "MergeSections",
- "switch": "MERGE:",
- "comment": "Merge Sections",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
diff --git a/Templates/MSBuild/FlagTables/v12_CSharp.json b/Templates/MSBuild/FlagTables/v12_CSharp.json
index 5989aea1e..9f21d9a27 100644
--- a/Templates/MSBuild/FlagTables/v12_CSharp.json
+++ b/Templates/MSBuild/FlagTables/v12_CSharp.json
@@ -363,52 +363,13 @@
},
{
"name": "LangVersion",
- "switch": "langversion:ISO-1",
+ "switch": "langversion:",
"comment": "",
- "value": "ISO-1",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:ISO-2",
- "comment": "",
- "value": "ISO-2",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:3",
- "comment": "",
- "value": "3",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:4",
- "comment": "",
- "value": "4",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:5",
- "comment": "",
- "value": "5",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:6",
- "comment": "",
- "value": "6",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:default",
- "comment": "",
- "value": "default",
- "flags": []
+ "value": "",
+ "flags": [
+ "UserValue",
+ "UserRequired"
+ ]
},
{
"name": "DelaySign",
diff --git a/Templates/MSBuild/FlagTables/v12_Link.json b/Templates/MSBuild/FlagTables/v12_Link.json
index 5d5c13f21..0db5d9e05 100644
--- a/Templates/MSBuild/FlagTables/v12_Link.json
+++ b/Templates/MSBuild/FlagTables/v12_Link.json
@@ -1225,15 +1225,6 @@
]
},
{
- "name": "MergeSections",
- "switch": "MERGE:",
- "comment": "Merge Sections",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
diff --git a/Templates/MSBuild/FlagTables/v140_CSharp.json b/Templates/MSBuild/FlagTables/v140_CSharp.json
index 5989aea1e..9f21d9a27 100644
--- a/Templates/MSBuild/FlagTables/v140_CSharp.json
+++ b/Templates/MSBuild/FlagTables/v140_CSharp.json
@@ -363,52 +363,13 @@
},
{
"name": "LangVersion",
- "switch": "langversion:ISO-1",
+ "switch": "langversion:",
"comment": "",
- "value": "ISO-1",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:ISO-2",
- "comment": "",
- "value": "ISO-2",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:3",
- "comment": "",
- "value": "3",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:4",
- "comment": "",
- "value": "4",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:5",
- "comment": "",
- "value": "5",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:6",
- "comment": "",
- "value": "6",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:default",
- "comment": "",
- "value": "default",
- "flags": []
+ "value": "",
+ "flags": [
+ "UserValue",
+ "UserRequired"
+ ]
},
{
"name": "DelaySign",
diff --git a/Templates/MSBuild/FlagTables/v140_Link.json b/Templates/MSBuild/FlagTables/v140_Link.json
index 3fb072c50..7e293b140 100644
--- a/Templates/MSBuild/FlagTables/v140_Link.json
+++ b/Templates/MSBuild/FlagTables/v140_Link.json
@@ -1269,15 +1269,6 @@
]
},
{
- "name": "MergeSections",
- "switch": "MERGE:",
- "comment": "Merge Sections",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
diff --git a/Templates/MSBuild/FlagTables/v141_CL.json b/Templates/MSBuild/FlagTables/v141_CL.json
index 01fafe48d..5b18e32ea 100644
--- a/Templates/MSBuild/FlagTables/v141_CL.json
+++ b/Templates/MSBuild/FlagTables/v141_CL.json
@@ -421,8 +421,29 @@
},
{
"name": "SpectreMitigation",
+ "switch": "Qspectre-load-cf",
+ "comment": "All Control Flow Loads",
+ "value": "SpectreLoadCF",
+ "flags": []
+ },
+ {
+ "name": "SpectreMitigation",
+ "switch": "Qspectre-load",
+ "comment": "All Loads",
+ "value": "SpectreLoad",
+ "flags": []
+ },
+ {
+ "name": "SpectreMitigation",
+ "switch": "Qspectre-",
+ "comment": "Disabled",
+ "value": "false",
+ "flags": []
+ },
+ {
+ "name": "SpectreMitigation",
"switch": "Qspectre",
- "comment": "Spectre mitigations",
+ "comment": "Enabled",
"value": "Spectre",
"flags": []
},
@@ -589,6 +610,20 @@
"flags": []
},
{
+ "name": "SupportJustMyCode",
+ "switch": "JMC-",
+ "comment": "",
+ "value": "false",
+ "flags": []
+ },
+ {
+ "name": "SupportJustMyCode",
+ "switch": "JMC",
+ "comment": "",
+ "value": "true",
+ "flags": []
+ },
+ {
"name": "CompileAsWinRT",
"switch": "ZW",
"comment": "Consume Windows Runtime Extension",
@@ -812,7 +847,7 @@
{
"name": "ConformanceMode",
"switch": "permissive-",
- "comment": "Conformance mode enabled",
+ "comment": "Conformance mode",
"value": "true",
"flags": []
},
@@ -1250,19 +1285,5 @@
"comment": "C++14 (GNU Dialect)",
"value": "gnu++1y",
"flags": []
- },
- {
- "name": "SupportJustMyCode",
- "switch": "JMC-",
- "comment": "",
- "value": "false",
- "flags": []
- },
- {
- "name": "SupportJustMyCode",
- "switch": "JMC",
- "comment": "",
- "value": "true",
- "flags": []
}
]
diff --git a/Templates/MSBuild/FlagTables/v141_CSharp.json b/Templates/MSBuild/FlagTables/v141_CSharp.json
index 5989aea1e..9f21d9a27 100644
--- a/Templates/MSBuild/FlagTables/v141_CSharp.json
+++ b/Templates/MSBuild/FlagTables/v141_CSharp.json
@@ -363,52 +363,13 @@
},
{
"name": "LangVersion",
- "switch": "langversion:ISO-1",
+ "switch": "langversion:",
"comment": "",
- "value": "ISO-1",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:ISO-2",
- "comment": "",
- "value": "ISO-2",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:3",
- "comment": "",
- "value": "3",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:4",
- "comment": "",
- "value": "4",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:5",
- "comment": "",
- "value": "5",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:6",
- "comment": "",
- "value": "6",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:default",
- "comment": "",
- "value": "default",
- "flags": []
+ "value": "",
+ "flags": [
+ "UserValue",
+ "UserRequired"
+ ]
},
{
"name": "DelaySign",
diff --git a/Templates/MSBuild/FlagTables/v141_Link.json b/Templates/MSBuild/FlagTables/v141_Link.json
index 66ee76fcb..e311240b6 100644
--- a/Templates/MSBuild/FlagTables/v141_Link.json
+++ b/Templates/MSBuild/FlagTables/v141_Link.json
@@ -1276,15 +1276,6 @@
]
},
{
- "name": "MergeSections",
- "switch": "MERGE:",
- "comment": "Merge Sections",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
diff --git a/Templates/MSBuild/FlagTables/v142_CL.json b/Templates/MSBuild/FlagTables/v142_CL.json
index 3305e5643..49776d0fe 100644
--- a/Templates/MSBuild/FlagTables/v142_CL.json
+++ b/Templates/MSBuild/FlagTables/v142_CL.json
@@ -386,6 +386,13 @@
},
{
"name": "EnableEnhancedInstructionSet",
+ "switch": "arch:AVX512",
+ "comment": "Advanced Vector Extensions 512",
+ "value": "AdvancedVectorExtensions512",
+ "flags": []
+ },
+ {
+ "name": "EnableEnhancedInstructionSet",
"switch": "arch:IA32",
"comment": "No Enhanced Instructions",
"value": "NoExtensions",
@@ -421,19 +428,47 @@
},
{
"name": "SpectreMitigation",
+ "switch": "Qspectre-load-cf",
+ "comment": "All Control Flow Loads",
+ "value": "SpectreLoadCF",
+ "flags": []
+ },
+ {
+ "name": "SpectreMitigation",
+ "switch": "Qspectre-load",
+ "comment": "All Loads",
+ "value": "SpectreLoad",
+ "flags": []
+ },
+ {
+ "name": "SpectreMitigation",
"switch": "Qspectre-",
- "comment": "Spectre mitigations disabled",
+ "comment": "Disabled",
"value": "false",
"flags": []
},
{
"name": "SpectreMitigation",
"switch": "Qspectre",
- "comment": "Spectre mitigations enabled",
+ "comment": "Enabled",
"value": "Spectre",
"flags": []
},
{
+ "name": "ConformanceMode",
+ "switch": "permissive-",
+ "comment": "Yes",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "ConformanceMode",
+ "switch": "permissive",
+ "comment": "No",
+ "value": "false",
+ "flags": []
+ },
+ {
"name": "LanguageStandard",
"switch": "std:c++14",
"comment": "ISO C++14 Standard",
@@ -442,6 +477,13 @@
},
{
"name": "LanguageStandard",
+ "switch": "std:c++20",
+ "comment": "ISO C++20 Standard",
+ "value": "stdcpp20",
+ "flags": []
+ },
+ {
+ "name": "LanguageStandard",
"switch": "std:c++17",
"comment": "ISO C++17 Standard",
"value": "stdcpp17",
@@ -537,6 +579,7 @@
"switch": "external:W0",
"comment": "Turn Off All Warnings",
"value": "TurnOffAllWarnings",
+ "vsmin": "16.10.31321.278",
"flags": []
},
{
@@ -544,6 +587,7 @@
"switch": "external:W1",
"comment": "Level1",
"value": "Level1",
+ "vsmin": "16.10.31321.278",
"flags": []
},
{
@@ -551,6 +595,7 @@
"switch": "external:W2",
"comment": "Level2",
"value": "Level2",
+ "vsmin": "16.10.31321.278",
"flags": []
},
{
@@ -558,6 +603,7 @@
"switch": "external:W3",
"comment": "Level3",
"value": "Level3",
+ "vsmin": "16.10.31321.278",
"flags": []
},
{
@@ -565,6 +611,7 @@
"switch": "external:W4",
"comment": "Level4",
"value": "Level4",
+ "vsmin": "16.10.31321.278",
"flags": []
},
{
@@ -617,6 +664,27 @@
"flags": []
},
{
+ "name": "CompileAs",
+ "switch": "interface",
+ "comment": "Compile as C++ Module Code",
+ "value": "CompileAsCppModule",
+ "flags": []
+ },
+ {
+ "name": "CompileAs",
+ "switch": "internalPartition",
+ "comment": "Compile as C++ Module Internal Partition",
+ "value": "CompileAsCppModuleInternalPartition",
+ "flags": []
+ },
+ {
+ "name": "CompileAs",
+ "switch": "exportHeader",
+ "comment": "Compile as C++ Header Unit",
+ "value": "CompileAsHeaderUnit",
+ "flags": []
+ },
+ {
"name": "ErrorReporting",
"switch": "errorReport:none",
"comment": "Do Not Send Report",
@@ -719,6 +787,13 @@
]
},
{
+ "name": "ForceSynchronousPDBWrites",
+ "switch": "FS",
+ "comment": "Force Synchronous PDB Writes",
+ "value": "true",
+ "flags": []
+ },
+ {
"name": "IntrinsicFunctions",
"switch": "Oi",
"comment": "Enable Intrinsic Functions",
@@ -789,6 +864,20 @@
"flags": []
},
{
+ "name": "UseStandardPreprocessor",
+ "switch": "Zc:preprocessor-",
+ "comment": "Use Standard Conforming Preprocessor",
+ "value": "false",
+ "flags": []
+ },
+ {
+ "name": "UseStandardPreprocessor",
+ "switch": "Zc:preprocessor",
+ "comment": "Use Standard Conforming Preprocessor",
+ "value": "true",
+ "flags": []
+ },
+ {
"name": "StringPooling",
"switch": "GF-",
"comment": "Enable String Pooling",
@@ -873,27 +962,48 @@
"flags": []
},
{
- "name": "DisableLanguageExtensions",
- "switch": "Za",
- "comment": "Disable Language Extensions",
+ "name": "IntelJCCErratum",
+ "switch": "QIntel-jcc-erratum",
+ "comment": "Enable Intel JCC Erratum Mitigation",
"value": "true",
"flags": []
},
{
- "name": "ConformanceMode",
- "switch": "permissive-",
- "comment": "Conformance mode enabled",
+ "name": "GuardEHContMetadata",
+ "switch": "guard:ehcont-",
+ "comment": "Enable EH Continuation Metadata",
+ "value": "false",
+ "flags": []
+ },
+ {
+ "name": "GuardEHContMetadata",
+ "switch": "guard:ehcont",
+ "comment": "Enable EH Continuation Metadata",
"value": "true",
"flags": []
},
{
- "name": "ConformanceMode",
- "switch": "permissive",
- "comment": "Conformance mode disabled",
+ "name": "GuardSignedReturns",
+ "switch": "guard:signret-",
+ "comment": "Enable Signed Returns",
"value": "false",
"flags": []
},
{
+ "name": "GuardSignedReturns",
+ "switch": "guard:signret",
+ "comment": "Enable Signed Returns",
+ "value": "true",
+ "flags": []
+ },
+ {
+ "name": "DisableLanguageExtensions",
+ "switch": "Za",
+ "comment": "Disable Language Extensions",
+ "value": "true",
+ "flags": []
+ },
+ {
"name": "TreatWChar_tAsBuiltInType",
"switch": "Zc:wchar_t-",
"comment": "Treat WChar_t As Built in Type",
@@ -980,7 +1090,7 @@
{
"name": "EnableModules",
"switch": "experimental:module",
- "comment": "Enable C++ Modules (experimental)",
+ "comment": "Enable Experimental C++ Standard Library Modules",
"value": "true",
"flags": []
},
@@ -999,6 +1109,15 @@
"flags": []
},
{
+ "name": "GenerateModuleDependencies",
+ "switch": "sourceDependencies:directives",
+ "comment": "Generate Module Dependenices File",
+ "value": "true",
+ "flags": [
+ "Continue"
+ ]
+ },
+ {
"name": "GenerateXMLDocumentationFiles",
"switch": "doc",
"comment": "Generate XML Documentation Files",
@@ -1010,6 +1129,15 @@
]
},
{
+ "name": "GenerateSourceDependencies",
+ "switch": "sourceDependencies",
+ "comment": "Generate Source Dependencies File",
+ "value": "true",
+ "flags": [
+ "Continue"
+ ]
+ },
+ {
"name": "BrowseInformation",
"switch": "FR",
"comment": "Enable Browse Information",
@@ -1021,6 +1149,29 @@
]
},
{
+ "name": "TreatAngleIncludeAsExternal",
+ "switch": "external:anglebrackets",
+ "comment": "Treat Files Included with Angle Brackets as External",
+ "value": "true",
+ "vsmin": "16.10.31321.278",
+ "flags": []
+ },
+ {
+ "name": "ExternalTemplatesDiagnostics",
+ "switch": "external:templates-",
+ "comment": "Template Diagnostics in External Headers",
+ "value": "true",
+ "vsmin": "16.10.31321.278",
+ "flags": []
+ },
+ {
+ "name": "DisableAnalyzeExternal",
+ "switch": "analyze:external-",
+ "comment": "Disable Code Analysis for External Headers",
+ "value": "true",
+ "flags": []
+ },
+ {
"name": "ShowIncludes",
"switch": "showIncludes",
"comment": "Show Includes",
@@ -1076,6 +1227,36 @@
]
},
{
+ "name": "AdditionalBMIDirectories",
+ "switch": "ifcSearchDir",
+ "comment": "Additional BMI Directories",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "AdditionalModuleDependencies",
+ "switch": "reference",
+ "comment": "Additional Module Dependencies",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "AdditionalHeaderUnitDependencies",
+ "switch": "headerUnit",
+ "comment": "Additional Header Unit Dependencies",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
"name": "PreprocessorDefinitions",
"switch": "D",
"comment": "Preprocessor Definitions",
@@ -1096,6 +1277,27 @@
]
},
{
+ "name": "StdIfcDirectory",
+ "switch": "stdIfcDir",
+ "comment": "",
+ "value": "",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
+ "name": "ExternalDirectoriesEnv",
+ "switch": "external:env:",
+ "comment": "External Directories Environment Variables",
+ "value": "",
+ "vsmin": "16.10.31321.278",
+ "flags": [
+ "UserValue",
+ "SemicolonAppendable"
+ ]
+ },
+ {
"name": "DisableSpecificWarnings",
"switch": "wd",
"comment": "Disable Specific Warnings",
@@ -1211,6 +1413,24 @@
]
},
{
+ "name": "ModuleOutputFile",
+ "switch": "ifcOutput",
+ "comment": "Module Output File Name",
+ "value": "",
+ "flags": [
+ "UserValue"
+ ]
+ },
+ {
+ "name": "ModuleDependenciesFile",
+ "switch": "sourceDependencies:directives",
+ "comment": "Module Dependencies File Name",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
"name": "ObjectFileName",
"switch": "Fo",
"comment": "Object File Name",
@@ -1239,6 +1459,15 @@
]
},
{
+ "name": "SourceDependenciesFile",
+ "switch": "sourceDependencies",
+ "comment": "Source Dependencies File Name",
+ "value": "",
+ "flags": [
+ "UserFollowing"
+ ]
+ },
+ {
"name": "BrowseInformationFile",
"switch": "FR",
"comment": "Browse Information File",
diff --git a/Templates/MSBuild/FlagTables/v142_CSharp.json b/Templates/MSBuild/FlagTables/v142_CSharp.json
index 4dcea9de3..ae1bd47bf 100644
--- a/Templates/MSBuild/FlagTables/v142_CSharp.json
+++ b/Templates/MSBuild/FlagTables/v142_CSharp.json
@@ -381,52 +381,13 @@
},
{
"name": "LangVersion",
- "switch": "langversion:ISO-1",
+ "switch": "langversion:",
"comment": "",
- "value": "ISO-1",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:ISO-2",
- "comment": "",
- "value": "ISO-2",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:3",
- "comment": "",
- "value": "3",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:4",
- "comment": "",
- "value": "4",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:5",
- "comment": "",
- "value": "5",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:6",
- "comment": "",
- "value": "6",
- "flags": []
- },
- {
- "name": "LangVersion",
- "switch": "langversion:default",
- "comment": "",
- "value": "default",
- "flags": []
+ "value": "",
+ "flags": [
+ "UserValue",
+ "UserRequired"
+ ]
},
{
"name": "DelaySign",
diff --git a/Templates/MSBuild/FlagTables/v142_Link.json b/Templates/MSBuild/FlagTables/v142_Link.json
index 110dcc2b1..d5fc2e4d7 100644
--- a/Templates/MSBuild/FlagTables/v142_Link.json
+++ b/Templates/MSBuild/FlagTables/v142_Link.json
@@ -1283,15 +1283,6 @@
]
},
{
- "name": "MergeSections",
- "switch": "MERGE:",
- "comment": "Merge Sections",
- "value": "",
- "flags": [
- "UserValue"
- ]
- },
- {
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
diff --git a/Templates/TestDriver.cxx.in b/Templates/TestDriver.cxx.in
index 3e47d6a0d..61134172e 100644
--- a/Templates/TestDriver.cxx.in
+++ b/Templates/TestDriver.cxx.in
@@ -2,6 +2,7 @@
#include <stdio.h> /* NOLINT */
#include <stdlib.h> /* NOLINT */
#include <string.h> /* NOLINT */
+#include <time.h>
#if defined(_MSC_VER)
#pragma warning(disable : 4996) /* deprecation */
@@ -62,11 +63,23 @@ static char* lowercase(const char* string)
return new_string;
}
+int isTestSkipped(const char *name, int n_skipped_tests, char *skipped_tests[]) {
+ int i;
+ for (i = 0; i < n_skipped_tests; i++) {
+ if (strcmp(name, skipped_tests[i]) == 0) {
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
int main(int ac, char* av[])
{
int i;
int testNum = 0;
int partial_match;
+ int run_all;
char *arg;
int testToRun = -1;
@@ -95,15 +108,45 @@ int main(int ac, char* av[])
av++;
}
partial_match = 0;
+ run_all = 0;
arg = CM_NULL; /* NOLINT */
- /* If partial match is requested. */
+ /* If partial match or running all tests are requested. */
if (testToRun == -1 && ac > 1) {
partial_match = (strcmp(av[1], "-R") == 0) ? 1 : 0;
+ run_all = (strcmp(av[1], "-A") == 0) ? 1 : 0;
}
if (partial_match != 0 && ac < 3) {
printf("-R needs an additional parameter.\n");
return -1;
}
+ if (run_all == 1) {
+ clock_t t;
+ int status = 0;
+ const char* status_message = NULL;
+ printf("TAP version 13\n");
+ printf("1..%d\n", NumTests);
+ for (i = 0; i < NumTests; ++i) {
+ const char *name = cmakeGeneratedFunctionMapEntries[i].name;
+ if (ac > 2) {
+ if (isTestSkipped(name, ac - 2, av + 2) == 1) {
+ printf("ok %d %s # SKIP\n", i + 1, name);
+ continue;
+ }
+ }
+ t = clock();
+ status = (*cmakeGeneratedFunctionMapEntries[i].func)(ac, av);
+ t = clock() - t;
+ status_message = (status == -1) ? "not ok" : "ok";
+ {
+ double time_taken = ((double)t) / CLOCKS_PER_SEC;
+ printf("%s %d %s # %f\n", status_message, i + 1, name, time_taken);
+ }
+ }
+ printf("All tests finished.\n");
+
+ return 0;
+ }
+
if (testToRun == -1) {
arg = lowercase(av[1 + partial_match]);
}