Merge branch 'backport-vs2026' into vs2026

This commit is contained in:
Brad King
2025-09-15 11:33:57 -04:00
25 changed files with 3816 additions and 38 deletions
+47
View File
@@ -0,0 +1,47 @@
Visual Studio 18 2026
---------------------
.. versionadded:: 4.2
Generates Visual Studio 18 (VS 2026) project files.
Project Types
^^^^^^^^^^^^^
Only Visual C++ and C# projects may be generated (and Fortran with
Intel compiler integration). Other types of projects (JavaScript,
Powershell, Python, etc.) are not supported.
Instance Selection
^^^^^^^^^^^^^^^^^^
VS 2026 supports multiple installations on the same machine. The
:variable:`CMAKE_GENERATOR_INSTANCE` variable may be used to select one.
Platform Selection
^^^^^^^^^^^^^^^^^^
The default target platform name (architecture) is that of the host
and is provided in the :variable:`CMAKE_VS_PLATFORM_NAME_DEFAULT` variable.
The :variable:`CMAKE_GENERATOR_PLATFORM` variable may be set, perhaps
via the :option:`cmake -A` option, to specify a target platform
name (architecture). For example:
* ``cmake -G "Visual Studio 18 2026" -A Win32``
* ``cmake -G "Visual Studio 18 2026" -A x64``
* ``cmake -G "Visual Studio 18 2026" -A ARM``
* ``cmake -G "Visual Studio 18 2026" -A ARM64``
Toolset Selection
^^^^^^^^^^^^^^^^^
The ``v145`` toolset that comes with VS 18 2026 is selected by default.
The :variable:`CMAKE_GENERATOR_TOOLSET` option may be set, perhaps
via the :option:`cmake -T` option, to specify another toolset.
.. |VS_TOOLSET_HOST_ARCH_DEFAULT| replace::
By default this generator uses the 64-bit variant on x64 hosts and
the 32-bit variant otherwise.
.. include:: include/VS_TOOLSET_HOST_ARCH.rst
+1
View File
@@ -100,6 +100,7 @@ Visual Studio Generators
/generator/Visual Studio 15 2017
/generator/Visual Studio 16 2019
/generator/Visual Studio 17 2022
/generator/Visual Studio 18 2026
Other Generators
^^^^^^^^^^^^^^^^
+1
View File
@@ -24,6 +24,7 @@ Known toolset version numbers are:
141 VS 2017 (15.0)
142 VS 2019 (16.0)
143 VS 2022 (17.0)
145 VS 2026 (18.0)
===== ==============
Compiler versions newer than those known to CMake will be reported
+1
View File
@@ -26,6 +26,7 @@ Known version numbers are:
1910-1919 VS 15.0 (v141 toolset)
1920-1929 VS 16.0 (v142 toolset)
1930-1949 VS 17.0 (v143 toolset)
1950-1959 VS 18.0 (v145 toolset)
========= ==============
See also the :variable:`CMAKE_<LANG>_COMPILER_VERSION` and
+4
View File
@@ -19,6 +19,8 @@ namespace CSharp
+ "Visual Studio"
#elif PlatformToolsetv143
+ "Visual Studio"
#elif PlatformToolsetv145
+ "Visual Studio"
#else
+ "unknown"
#endif
@@ -53,6 +55,8 @@ namespace CSharp
+ "2019"
#elif PlatformToolsetv143
+ "2022"
#elif PlatformToolsetv145
+ "2026"
#else
+ "9999"
#endif
+6 -2
View File
@@ -247,8 +247,12 @@ if(MSVC)
set(_MSVC_IDE_VERSION "")
if(MSVC_VERSION GREATER_EQUAL 2000)
message(WARNING "MSVC ${MSVC_VERSION} not yet supported.")
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 144)
elseif(MSVC_TOOLSET_VERSION GREATER_EQUAL 146)
message(WARNING "MSVC toolset v${MSVC_TOOLSET_VERSION} not yet supported.")
elseif(MSVC_TOOLSET_VERSION EQUAL 145)
set(MSVC_REDIST_NAME VC145)
set(_MSVC_DLL_VERSION 140)
set(_MSVC_IDE_VERSION 18)
elseif(MSVC_TOOLSET_VERSION EQUAL 143)
set(MSVC_REDIST_NAME VC143)
set(_MSVC_DLL_VERSION 140)
@@ -293,7 +297,7 @@ if(MSVC)
if(NOT vs VERSION_LESS 15)
set(_vs_redist_paths "")
# The toolset and its redistributables may come with any VS version 15 or newer.
set(_MSVC_IDE_VERSIONS 17 16 15)
set(_MSVC_IDE_VERSIONS 18 17 16 15)
foreach(_vs_ver ${_MSVC_IDE_VERSIONS})
set(_vs_glob_redist_paths "")
cmake_host_system_information(RESULT _vs_dir QUERY VS_${_vs_ver}_DIR) # undocumented query
+1 -1
View File
@@ -181,7 +181,7 @@ macro(__windows_compiler_gnu_abi lang)
# Query the VS Installer tool for locations of VS 2017 and above.
set(_vs_installer_paths "")
foreach(vs RANGE 17 15 -1) # change the first number to the largest supported version
foreach(vs RANGE 18 15 -1) # change the first number to the largest supported version
cmake_host_system_information(RESULT _vs_dir QUERY VS_${vs}_DIR)
if(_vs_dir)
list(APPEND _vs_installer_paths "${_vs_dir}/VC/Auxiliary/Build")
+4 -1
View File
@@ -61,7 +61,10 @@ if(NOT MSVC_VERSION)
message(FATAL_ERROR "MSVC compiler version not detected properly: ${_compiler_version}")
endif()
if(MSVC_VERSION GREATER_EQUAL 1930)
if(MSVC_VERSION GREATER_EQUAL 1950)
# VS 2026 or greater
set(MSVC_TOOLSET_VERSION 145)
elseif(MSVC_VERSION GREATER_EQUAL 1930)
# VS 2022 or greater
set(MSVC_TOOLSET_VERSION 143)
elseif(MSVC_VERSION GREATER_EQUAL 1920)
@@ -498,7 +498,7 @@ cm::optional<std::string> GetWindowsValue(cmExecutionStatus& status,
std::string const& key)
{
auto* const gg = status.GetMakefile().GetGlobalGenerator();
for (auto vs : { 15, 16, 17 }) {
for (auto vs : { 15, 16, 17, 18 }) {
if (key == cmStrCat("VS_"_s, vs, "_DIR"_s)) {
std::string value;
// If generating for the VS nn IDE, use the same instance.
@@ -1275,6 +1275,8 @@ char const* cmGlobalVisualStudio10Generator::GetToolsVersion() const
return "16.0";
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
return "17.0";
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return "18.0";
}
return "";
}
@@ -66,16 +66,6 @@ void cmGlobalVisualStudio71Generator::WriteSLNFile(
this->WriteSLNFooter(fout);
}
void cmGlobalVisualStudio71Generator::WriteSolutionConfigurations(
std::ostream& fout, std::vector<std::string> const& configs) const
{
fout << "\tGlobalSection(SolutionConfiguration) = preSolution\n";
for (std::string const& i : configs) {
fout << "\t\t" << i << " = " << i << '\n';
}
fout << "\tEndGlobalSection\n";
}
// Write a dsp file into the SLN file,
// Note, that dependencies from executables to
// the libraries it uses are also done here
+1 -1
View File
@@ -32,7 +32,7 @@ protected:
OrderedTargetDependSet const& orderedProjectTargets,
VSFolders const& vsFolders) const override;
virtual void WriteSolutionConfigurations(
std::ostream& fout, std::vector<std::string> const& configs) const;
std::ostream& fout, std::vector<std::string> const& configs) const = 0;
void WriteProject(std::ostream& fout, std::string const& name,
std::string const& path,
cmGeneratorTarget const* t) const override;
+10 -15
View File
@@ -115,6 +115,8 @@ char const* cmGlobalVisualStudioGenerator::GetIDEVersion() const
return "16.0";
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
return "17.0";
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return "18.0";
}
return "";
}
@@ -138,29 +140,22 @@ void cmGlobalVisualStudioGenerator::WriteSLNHeader(std::ostream& fout) const
case cmGlobalVisualStudioGenerator::VSVersion::VS15:
// Visual Studio 15 writes .sln format 12.00
fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n";
if (this->ExpressEdition) {
fout << "# Visual Studio Express 15 for Windows Desktop\n";
} else {
fout << "# Visual Studio 15\n";
}
fout << "# Visual Studio 15\n";
break;
case cmGlobalVisualStudioGenerator::VSVersion::VS16:
// Visual Studio 16 writes .sln format 12.00
fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n";
if (this->ExpressEdition) {
fout << "# Visual Studio Express 16 for Windows Desktop\n";
} else {
fout << "# Visual Studio Version 16\n";
}
fout << "# Visual Studio Version 16\n";
break;
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
// Visual Studio 17 writes .sln format 12.00
fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n";
if (this->ExpressEdition) {
fout << "# Visual Studio Express 17 for Windows Desktop\n";
} else {
fout << "# Visual Studio Version 17\n";
}
fout << "# Visual Studio Version 17\n";
break;
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
// Visual Studio 18 writes .sln format 12.00
fout << "Microsoft Visual Studio Solution File, Format Version 12.00\n";
fout << "# Visual Studio Version 18\n";
break;
}
}
+2 -1
View File
@@ -37,7 +37,8 @@ public:
VS14 = 140,
VS15 = 150,
VS16 = 160,
VS17 = 170
VS17 = 170,
VS18 = 180,
};
~cmGlobalVisualStudioGenerator() override;
@@ -133,6 +133,8 @@ static unsigned int VSVersionToMajor(
return 16;
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
return 17;
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return 18;
}
return 0;
}
@@ -149,6 +151,8 @@ static char const* VSVersionToToolset(
return "v142";
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
return "v143";
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return "v145";
}
return "";
}
@@ -165,6 +169,8 @@ static std::string VSVersionToMajorString(
return "16";
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
return "17";
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return "18";
}
return "";
}
@@ -178,6 +184,7 @@ static char const* VSVersionToAndroidToolset(
case cmGlobalVisualStudioGenerator::VSVersion::VS15:
case cmGlobalVisualStudioGenerator::VSVersion::VS16:
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return "Clang_5_0";
}
return "";
@@ -258,6 +265,7 @@ cmGlobalVisualStudioVersionedGenerator::NewFactory15()
static char const vs16generatorName[] = "Visual Studio 16 2019";
static char const vs17generatorName[] = "Visual Studio 17 2022";
static char const vs18generatorName[] = "Visual Studio 18 2026";
// Map generator name without year to name with year.
static char const* cmVS16GenName(std::string const& name, std::string& genName)
@@ -288,6 +296,20 @@ static char const* cmVS17GenName(std::string const& name, std::string& genName)
return p;
}
static char const* cmVS18GenName(std::string const& name, std::string& genName)
{
if (strncmp(name.c_str(), vs18generatorName,
sizeof(vs18generatorName) - 6) != 0) {
return nullptr;
}
char const* p = name.c_str() + sizeof(vs18generatorName) - 6;
if (cmHasLiteralPrefix(p, " 2026")) {
p += 5;
}
genName = cmStrCat(vs18generatorName, p);
return p;
}
class cmGlobalVisualStudioVersionedGenerator::Factory16
: public cmGlobalGeneratorFactory
{
@@ -408,6 +430,66 @@ cmGlobalVisualStudioVersionedGenerator::NewFactory17()
return std::unique_ptr<cmGlobalGeneratorFactory>(new Factory17);
}
class cmGlobalVisualStudioVersionedGenerator::Factory18
: public cmGlobalGeneratorFactory
{
public:
std::unique_ptr<cmGlobalGenerator> CreateGlobalGenerator(
std::string const& name, cmake* cm) const override
{
std::string genName;
char const* p = cmVS18GenName(name, genName);
if (!p) {
return std::unique_ptr<cmGlobalGenerator>();
}
if (!*p) {
return std::unique_ptr<cmGlobalGenerator>(
new cmGlobalVisualStudioVersionedGenerator(
cmGlobalVisualStudioGenerator::VSVersion::VS18, cm, genName));
}
return std::unique_ptr<cmGlobalGenerator>();
}
cmDocumentationEntry GetDocumentation() const override
{
return { std::string(vs18generatorName),
"Generates Visual Studio 2026 project files. "
"Use -A option to specify architecture." };
}
std::vector<std::string> GetGeneratorNames() const override
{
std::vector<std::string> names;
names.push_back(vs18generatorName);
return names;
}
bool SupportsToolset() const override { return true; }
bool SupportsPlatform() const override { return true; }
std::vector<std::string> GetKnownPlatforms() const override
{
std::vector<std::string> platforms;
platforms.emplace_back("x64");
platforms.emplace_back("Win32");
platforms.emplace_back("ARM");
platforms.emplace_back("ARM64");
platforms.emplace_back("ARM64EC");
return platforms;
}
std::string GetDefaultPlatformName() const override
{
return VSHostPlatformName();
}
};
std::unique_ptr<cmGlobalGeneratorFactory>
cmGlobalVisualStudioVersionedGenerator::NewFactory18()
{
return std::unique_ptr<cmGlobalGeneratorFactory>(new Factory18);
}
cmGlobalVisualStudioVersionedGenerator::cmGlobalVisualStudioVersionedGenerator(
VSVersion version, cmake* cm, std::string const& name)
: cmGlobalVisualStudio14Generator(cm, name)
@@ -455,6 +537,11 @@ bool cmGlobalVisualStudioVersionedGenerator::MatchesGeneratorName(
return genName == this->GetName();
}
break;
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
if (cmVS18GenName(name, genName)) {
return genName == this->GetName();
}
break;
}
return false;
}
@@ -709,6 +796,7 @@ cmGlobalVisualStudioVersionedGenerator::GetAndroidApplicationTypeRevision()
case cmGlobalVisualStudioGenerator::VSVersion::VS15:
case cmGlobalVisualStudioGenerator::VSVersion::VS16:
case cmGlobalVisualStudioGenerator::VSVersion::VS17:
case cmGlobalVisualStudioGenerator::VSVersion::VS18:
return "3.0";
}
return "";
@@ -26,6 +26,7 @@ public:
static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory15();
static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory16();
static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory17();
static std::unique_ptr<cmGlobalGeneratorFactory> NewFactory18();
bool MatchesGeneratorName(std::string const& name) const override;
@@ -89,6 +90,8 @@ private:
friend class Factory16;
class Factory17;
friend class Factory17;
class Factory18;
friend class Factory18;
mutable cmVSSetupAPIHelper vsSetupAPIHelper;
bool ParseGeneratorInstance(std::string const& is, cmMakefile* mf);
+5 -1
View File
@@ -2805,7 +2805,9 @@ std::unique_ptr<cmGlobalGenerator> cmake::EvaluateDefaultGlobalGenerator()
"\\Setup\\VC;ProductDir", //
";InstallDir" //
};
if (cmVSSetupAPIHelper(17).IsVSInstalled()) {
if (cmVSSetupAPIHelper(18).IsVSInstalled()) {
found = "Visual Studio 18 2026";
} else if (cmVSSetupAPIHelper(17).IsVSInstalled()) {
found = "Visual Studio 17 2022";
} else if (cmVSSetupAPIHelper(16).IsVSInstalled()) {
found = "Visual Studio 16 2019";
@@ -3252,6 +3254,8 @@ void cmake::AddDefaultGenerators()
{
#if defined(_WIN32) && !defined(__CYGWIN__)
# if !defined(CMAKE_BOOT_MINGW)
this->Generators.push_back(
cmGlobalVisualStudioVersionedGenerator::NewFactory18());
this->Generators.push_back(
cmGlobalVisualStudioVersionedGenerator::NewFactory17());
this->Generators.push_back(
+1701
View File
@@ -0,0 +1,1701 @@
[
{
"name": "DebugInformationFormat",
"switch": "",
"comment": "None",
"value": "None",
"flags": []
},
{
"name": "DebugInformationFormat",
"switch": "Z7",
"comment": "C7 compatible",
"value": "OldStyle",
"flags": []
},
{
"name": "DebugInformationFormat",
"switch": "Zi",
"comment": "Program Database",
"value": "ProgramDatabase",
"flags": []
},
{
"name": "DebugInformationFormat",
"switch": "ZI",
"comment": "Program Database for Edit And Continue",
"value": "EditAndContinue",
"flags": []
},
{
"name": "CompileAsManaged",
"switch": "",
"comment": "No Common Language RunTime Support",
"value": "false",
"flags": []
},
{
"name": "CompileAsManaged",
"switch": "clr",
"comment": "Common Language RunTime Support",
"value": "true",
"flags": []
},
{
"name": "CompileAsManaged",
"switch": "clr:pure",
"comment": "Pure MSIL Common Language RunTime Support",
"value": "Pure",
"flags": []
},
{
"name": "CompileAsManaged",
"switch": "clr:safe",
"comment": "Safe MSIL Common Language RunTime Support",
"value": "Safe",
"flags": []
},
{
"name": "CLRSupport",
"switch": "clr:netcore",
"comment": ".NET Core Runtime Support",
"value": "NetCore",
"flags": []
},
{
"name": "WarningLevel",
"switch": "W0",
"comment": "Turn Off All Warnings",
"value": "TurnOffAllWarnings",
"flags": []
},
{
"name": "WarningLevel",
"switch": "W1",
"comment": "Level1",
"value": "Level1",
"flags": []
},
{
"name": "WarningLevel",
"switch": "W2",
"comment": "Level2",
"value": "Level2",
"flags": []
},
{
"name": "WarningLevel",
"switch": "W3",
"comment": "Level3",
"value": "Level3",
"flags": []
},
{
"name": "WarningLevel",
"switch": "W4",
"comment": "Level4",
"value": "Level4",
"flags": []
},
{
"name": "WarningLevel",
"switch": "Wall",
"comment": "EnableAllWarnings",
"value": "EnableAllWarnings",
"flags": []
},
{
"name": "DiagnosticsFormat",
"switch": "diagnostics:caret",
"comment": "Caret",
"value": "Caret",
"flags": []
},
{
"name": "DiagnosticsFormat",
"switch": "diagnostics:column",
"comment": "Column Info",
"value": "Column",
"flags": []
},
{
"name": "DiagnosticsFormat",
"switch": "diagnostics:classic",
"comment": "Classic",
"value": "Classic",
"flags": []
},
{
"name": "Optimization",
"switch": "",
"comment": "Custom",
"value": "Custom",
"flags": []
},
{
"name": "Optimization",
"switch": "Od",
"comment": "Disabled",
"value": "Disabled",
"flags": []
},
{
"name": "Optimization",
"switch": "O1",
"comment": "Maximum Optimization (Favor Size)",
"value": "MinSpace",
"flags": []
},
{
"name": "Optimization",
"switch": "O2",
"comment": "Maximum Optimization (Favor Speed)",
"value": "MaxSpeed",
"flags": []
},
{
"name": "Optimization",
"switch": "Ox",
"comment": "Optimizations (Favor Speed)",
"value": "Full",
"flags": []
},
{
"name": "InlineFunctionExpansion",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"name": "InlineFunctionExpansion",
"switch": "Ob0",
"comment": "Disabled",
"value": "Disabled",
"flags": []
},
{
"name": "InlineFunctionExpansion",
"switch": "Ob1",
"comment": "Only __inline",
"value": "OnlyExplicitInline",
"flags": []
},
{
"name": "InlineFunctionExpansion",
"switch": "Ob2",
"comment": "Any Suitable",
"value": "AnySuitable",
"flags": []
},
{
"name": "FavorSizeOrSpeed",
"switch": "Os",
"comment": "Favor small code",
"value": "Size",
"flags": []
},
{
"name": "FavorSizeOrSpeed",
"switch": "Ot",
"comment": "Favor fast code",
"value": "Speed",
"flags": []
},
{
"name": "FavorSizeOrSpeed",
"switch": "",
"comment": "Neither",
"value": "Neither",
"flags": []
},
{
"name": "ExceptionHandling",
"switch": "EHa",
"comment": "Yes with SEH Exceptions",
"value": "Async",
"flags": []
},
{
"name": "ExceptionHandling",
"switch": "EHsc",
"comment": "Yes",
"value": "Sync",
"flags": []
},
{
"name": "ExceptionHandling",
"switch": "EHs",
"comment": "Yes with Extern C functions",
"value": "SyncCThrow",
"flags": []
},
{
"name": "ExceptionHandling",
"switch": "",
"comment": "No",
"value": "false",
"flags": []
},
{
"name": "BasicRuntimeChecks",
"switch": "RTCs",
"comment": "Stack Frames",
"value": "StackFrameRuntimeCheck",
"flags": []
},
{
"name": "BasicRuntimeChecks",
"switch": "RTCu",
"comment": "Uninitialized variables",
"value": "UninitializedLocalUsageCheck",
"flags": []
},
{
"name": "BasicRuntimeChecks",
"switch": "RTC1",
"comment": "Both (/RTC1, equiv. to /RTCsu)",
"value": "EnableFastChecks",
"flags": []
},
{
"name": "BasicRuntimeChecks",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"name": "RuntimeLibrary",
"switch": "MT",
"comment": "Multi-threaded",
"value": "MultiThreaded",
"flags": []
},
{
"name": "RuntimeLibrary",
"switch": "MTd",
"comment": "Multi-threaded Debug",
"value": "MultiThreadedDebug",
"flags": []
},
{
"name": "RuntimeLibrary",
"switch": "MD",
"comment": "Multi-threaded DLL",
"value": "MultiThreadedDLL",
"flags": []
},
{
"name": "RuntimeLibrary",
"switch": "MDd",
"comment": "Multi-threaded Debug DLL",
"value": "MultiThreadedDebugDLL",
"flags": []
},
{
"name": "StructMemberAlignment",
"switch": "Zp1",
"comment": "1 Byte",
"value": "1Byte",
"flags": []
},
{
"name": "StructMemberAlignment",
"switch": "Zp2",
"comment": "2 Bytes",
"value": "2Bytes",
"flags": []
},
{
"name": "StructMemberAlignment",
"switch": "Zp4",
"comment": "4 Byte",
"value": "4Bytes",
"flags": []
},
{
"name": "StructMemberAlignment",
"switch": "Zp8",
"comment": "8 Bytes",
"value": "8Bytes",
"flags": []
},
{
"name": "StructMemberAlignment",
"switch": "Zp16",
"comment": "16 Bytes",
"value": "16Bytes",
"flags": []
},
{
"name": "StructMemberAlignment",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"name": "BufferSecurityCheck",
"switch": "GS-",
"comment": "Disable Security Check",
"value": "false",
"flags": []
},
{
"name": "BufferSecurityCheck",
"switch": "GS",
"comment": "Enable Security Check",
"value": "true",
"flags": []
},
{
"name": "ControlFlowGuard",
"switch": "guard:cf",
"comment": "Yes",
"value": "Guard",
"flags": []
},
{
"name": "ControlFlowGuard",
"switch": "",
"comment": "No",
"value": "false",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:SSE",
"comment": "Streaming SIMD Extensions (X86)",
"value": "StreamingSIMDExtensions",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:SSE2",
"comment": "Streaming SIMD Extensions 2 (X86)",
"value": "StreamingSIMDExtensions2",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:AVX",
"comment": "Advanced Vector Extensions (X86/X64)",
"value": "AdvancedVectorExtensions",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:AVX2",
"comment": "Advanced Vector Extensions 2 (X86/X64)",
"value": "AdvancedVectorExtensions2",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:AVX512",
"comment": "Advanced Vector Extensions 512 (X86/X64)",
"value": "AdvancedVectorExtensions512",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:AVX10.1",
"comment": "Advanced Vector Extensions AVX10.1 (X86/X64)",
"value": "AdvancedVectorExtensions101",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:AVX10.2",
"comment": "Advanced Vector Extensions AVX10.2 (X86/X64)",
"value": "AdvancedVectorExtensions102",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:ARMv7VE",
"comment": "Virtualization Extensions (ARM)",
"value": "VirtualizationExtensions",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:VFPv4",
"comment": "ARM VFPv4 instructions (ARM)",
"value": "ARMVFPv4Instructions",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.0",
"comment": "CPU extension requirements ARMv8.0-A (ARM64)",
"value": "CPUExtensionRequirementsARMv80",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.1",
"comment": "CPU extension requirements ARMv8.1-A (ARM64)",
"value": "CPUExtensionRequirementsARMv81",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.2",
"comment": "CPU extension requirements ARMv8.2-A (ARM64)",
"value": "CPUExtensionRequirementsARMv82",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.3",
"comment": "CPU extension requirements ARMv8.3-A (ARM64)",
"value": "CPUExtensionRequirementsARMv83",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.4",
"comment": "CPU extension requirements ARMv8.4-A (ARM64)",
"value": "CPUExtensionRequirementsARMv84",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.5",
"comment": "CPU extension requirements ARMv8.5-A (ARM64)",
"value": "CPUExtensionRequirementsARMv85",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.6",
"comment": "CPU extension requirements ARMv8.6-A (ARM64)",
"value": "CPUExtensionRequirementsARMv86",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.7",
"comment": "CPU extension requirements ARMv8.7-A (ARM64)",
"value": "CPUExtensionRequirementsARMv87",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:armv8.8",
"comment": "CPU extension requirements ARMv8.8-A (ARM64)",
"value": "CPUExtensionRequirementsARMv88",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:IA32",
"comment": "No Enhanced Instructions",
"value": "NoExtensions",
"flags": []
},
{
"name": "EnableEnhancedInstructionSet",
"switch": "arch:NotSet",
"comment": "Not Set",
"value": "NotSet",
"flags": []
},
{
"name": "EnableVectorLength",
"switch": "",
"comment": "Not Set",
"value": "NotSet",
"flags": []
},
{
"name": "EnableVectorLength",
"switch": "vlen=256",
"comment": "256",
"value": "VectorLength256",
"flags": []
},
{
"name": "EnableVectorLength",
"switch": "vlen=512",
"comment": "512",
"value": "VectorLength512",
"flags": []
},
{
"name": "FloatingPointModel",
"switch": "fp:precise",
"comment": "Precise",
"value": "Precise",
"flags": []
},
{
"name": "FloatingPointModel",
"switch": "fp:strict",
"comment": "Strict",
"value": "Strict",
"flags": []
},
{
"name": "FloatingPointModel",
"switch": "fp:fast",
"comment": "Fast",
"value": "Fast",
"flags": []
},
{
"name": "FloatingPointModel",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"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": "Enabled",
"value": "Spectre",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "",
"comment": "Default (ISO C++14 Standard)",
"value": "Default",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++14",
"comment": "ISO C++14 Standard",
"value": "stdcpp14",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++17",
"comment": "ISO C++17 Standard",
"value": "stdcpp17",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++20",
"comment": "ISO C++20 Standard",
"value": "stdcpp20",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++23preview",
"comment": "Preview - ISO C++23 Standard",
"value": "stdcpp23",
"flags": []
},
{
"name": "LanguageStandard",
"switch": "std:c++latest",
"comment": "Preview - Features from the Latest C++ Working Draft",
"value": "stdcpplatest",
"flags": []
},
{
"name": "LanguageStandard_C",
"switch": "",
"comment": "Default (Legacy MSVC)",
"value": "Default",
"flags": []
},
{
"name": "LanguageStandard_C",
"switch": "std:c11",
"comment": "ISO C11 Standard",
"value": "stdc11",
"flags": []
},
{
"name": "LanguageStandard_C",
"switch": "std:c17",
"comment": "ISO C17 (2018) Standard",
"value": "stdc17",
"flags": []
},
{
"name": "LanguageStandard_C",
"switch": "std:clatest",
"comment": "Preview - Features from the Latest C Working Draft",
"value": "stdclatest",
"flags": []
},
{
"name": "ConformanceMode",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"name": "ConformanceMode",
"switch": "permissive-",
"comment": "Yes",
"value": "true",
"flags": []
},
{
"name": "ConformanceMode",
"switch": "permissive",
"comment": "No",
"value": "false",
"flags": []
},
{
"name": "PrecompiledHeader",
"switch": "Yc",
"comment": "Create",
"value": "Create",
"flags": [
"UserValue",
"UserIgnored",
"Continue"
]
},
{
"name": "PrecompiledHeader",
"switch": "Yu",
"comment": "Use",
"value": "Use",
"flags": [
"UserValue",
"UserIgnored",
"Continue"
]
},
{
"name": "PrecompiledHeader",
"switch": "Y-",
"comment": "Not Using Precompiled Headers",
"value": "NotUsing",
"flags": []
},
{
"name": "AssemblerOutput",
"switch": "",
"comment": "No Listing",
"value": "NoListing",
"flags": []
},
{
"name": "AssemblerOutput",
"switch": "FA",
"comment": "Assembly-Only Listing",
"value": "AssemblyCode",
"flags": []
},
{
"name": "AssemblerOutput",
"switch": "FAc",
"comment": "Assembly With Machine Code",
"value": "AssemblyAndMachineCode",
"flags": []
},
{
"name": "AssemblerOutput",
"switch": "FAs",
"comment": "Assembly With Source Code",
"value": "AssemblyAndSourceCode",
"flags": []
},
{
"name": "AssemblerOutput",
"switch": "FAcs",
"comment": "Assembly, Machine Code and Source",
"value": "All",
"flags": []
},
{
"name": "ExternalWarningLevel",
"switch": "external:W0",
"comment": "Turn Off All Warnings",
"value": "TurnOffAllWarnings",
"flags": []
},
{
"name": "ExternalWarningLevel",
"switch": "external:W1",
"comment": "Level1",
"value": "Level1",
"flags": []
},
{
"name": "ExternalWarningLevel",
"switch": "external:W2",
"comment": "Level2",
"value": "Level2",
"flags": []
},
{
"name": "ExternalWarningLevel",
"switch": "external:W3",
"comment": "Level3",
"value": "Level3",
"flags": []
},
{
"name": "ExternalWarningLevel",
"switch": "external:W4",
"comment": "Level4",
"value": "Level4",
"flags": []
},
{
"name": "ExternalWarningLevel",
"switch": "",
"comment": "Inherit Project Warning Level",
"value": "InheritWarningLevel",
"flags": []
},
{
"name": "CallingConvention",
"switch": "Gd",
"comment": "__cdecl",
"value": "Cdecl",
"flags": []
},
{
"name": "CallingConvention",
"switch": "Gr",
"comment": "__fastcall",
"value": "FastCall",
"flags": []
},
{
"name": "CallingConvention",
"switch": "Gz",
"comment": "__stdcall",
"value": "StdCall",
"flags": []
},
{
"name": "CallingConvention",
"switch": "Gv",
"comment": "__vectorcall",
"value": "VectorCall",
"flags": []
},
{
"name": "CompileAs",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"name": "CompileAs",
"switch": "TC",
"comment": "Compile as C Code",
"value": "CompileAsC",
"flags": []
},
{
"name": "CompileAs",
"switch": "TP",
"comment": "Compile as C++ Code",
"value": "CompileAsCpp",
"flags": []
},
{
"name": "ErrorReporting",
"switch": "errorReport:none",
"comment": "Do Not Send Report",
"value": "None",
"flags": []
},
{
"name": "ErrorReporting",
"switch": "errorReport:prompt",
"comment": "Prompt Immediately",
"value": "Prompt",
"flags": []
},
{
"name": "ErrorReporting",
"switch": "errorReport:queue",
"comment": "Queue For Next Login",
"value": "Queue",
"flags": []
},
{
"name": "ErrorReporting",
"switch": "errorReport:send",
"comment": "Send Automatically",
"value": "Send",
"flags": []
},
{
"name": "TranslateIncludes",
"switch": "translateInclude",
"comment": "Translate Includes to Imports",
"value": "true",
"flags": []
},
{
"name": "SupportJustMyCode",
"switch": "JMC-",
"comment": "Support Just My Code Debugging",
"value": "false",
"flags": []
},
{
"name": "SupportJustMyCode",
"switch": "JMC",
"comment": "Support Just My Code Debugging",
"value": "true",
"flags": []
},
{
"name": "CompileAsWinRT",
"switch": "ZW",
"comment": "Consume Windows Runtime Extension",
"value": "true",
"flags": []
},
{
"name": "WinRTNoStdLib",
"switch": "ZW:nostdlib",
"comment": "No Standard WinRT Libraries",
"value": "true",
"flags": []
},
{
"name": "SuppressStartupBanner",
"switch": "nologo",
"comment": "Suppress Startup Banner",
"value": "true",
"flags": []
},
{
"name": "TreatWarningAsError",
"switch": "WX-",
"comment": "Treat Warnings As Errors",
"value": "false",
"flags": []
},
{
"name": "TreatWarningAsError",
"switch": "WX",
"comment": "Treat Warnings As Errors",
"value": "true",
"flags": []
},
{
"name": "SDLCheck",
"switch": "sdl-",
"comment": "SDL checks",
"value": "false",
"flags": []
},
{
"name": "SDLCheck",
"switch": "sdl",
"comment": "SDL checks",
"value": "true",
"flags": []
},
{
"name": "MultiProcessorCompilation",
"switch": "MP",
"comment": "Multi-processor Compilation",
"value": "true",
"flags": [
"UserValue",
"UserIgnored",
"Continue"
]
},
{
"name": "IntrinsicFunctions",
"switch": "Oi",
"comment": "Enable Intrinsic Functions",
"value": "true",
"flags": []
},
{
"name": "OmitFramePointers",
"switch": "Oy-",
"comment": "Omit Frame Pointers",
"value": "false",
"flags": []
},
{
"name": "OmitFramePointers",
"switch": "Oy",
"comment": "Omit Frame Pointers",
"value": "true",
"flags": []
},
{
"name": "EnableFiberSafeOptimizations",
"switch": "GT",
"comment": "Enable Fiber-Safe Optimizations",
"value": "true",
"flags": []
},
{
"name": "WholeProgramOptimization",
"switch": "GL",
"comment": "Whole Program Optimization",
"value": "true",
"flags": []
},
{
"name": "UndefineAllPreprocessorDefinitions",
"switch": "u",
"comment": "Undefine All Preprocessor Definitions",
"value": "true",
"flags": []
},
{
"name": "IgnoreStandardIncludePath",
"switch": "X",
"comment": "Ignore Standard Include Paths",
"value": "true",
"flags": []
},
{
"name": "PreprocessToFile",
"switch": "P",
"comment": "Preprocess to a File",
"value": "true",
"flags": []
},
{
"name": "PreprocessSuppressLineNumbers",
"switch": "EP",
"comment": "Preprocess Suppress Line Numbers",
"value": "true",
"flags": []
},
{
"name": "PreprocessKeepComments",
"switch": "C",
"comment": "Keep Comments",
"value": "true",
"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",
"value": "false",
"flags": []
},
{
"name": "StringPooling",
"switch": "GF",
"comment": "Enable String Pooling",
"value": "true",
"flags": []
},
{
"name": "MinimalRebuild",
"switch": "Gm-",
"comment": "Enable Minimal Rebuild",
"value": "false",
"flags": []
},
{
"name": "MinimalRebuild",
"switch": "Gm",
"comment": "Enable Minimal Rebuild",
"value": "true",
"flags": []
},
{
"name": "SmallerTypeCheck",
"switch": "RTCc",
"comment": "Smaller Type Check",
"value": "true",
"flags": []
},
{
"name": "FunctionLevelLinking",
"switch": "Gy-",
"comment": "Enable Function-Level Linking",
"value": "false",
"flags": []
},
{
"name": "FunctionLevelLinking",
"switch": "Gy",
"comment": "Enable Function-Level Linking",
"value": "true",
"flags": []
},
{
"name": "EnableParallelCodeGeneration",
"switch": "Qpar-",
"comment": "Enable Parallel Code Generation",
"value": "false",
"flags": []
},
{
"name": "EnableParallelCodeGeneration",
"switch": "Qpar",
"comment": "Enable Parallel Code Generation",
"value": "true",
"flags": []
},
{
"name": "FloatingPointExceptions",
"switch": "fp:except-",
"comment": "Enable Floating Point Exceptions",
"value": "false",
"flags": []
},
{
"name": "FloatingPointExceptions",
"switch": "fp:except",
"comment": "Enable Floating Point Exceptions",
"value": "true",
"flags": []
},
{
"name": "CreateHotpatchableImage",
"switch": "hotpatch",
"comment": "Create Hotpatchable Image",
"value": "true",
"flags": []
},
{
"name": "IntelJCCErratum",
"switch": "QIntel-jcc-erratum",
"comment": "Enable Intel JCC Erratum Mitigation",
"value": "true",
"flags": []
},
{
"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": "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",
"value": "false",
"flags": []
},
{
"name": "TreatWChar_tAsBuiltInType",
"switch": "Zc:wchar_t",
"comment": "Treat WChar_t As Built in Type",
"value": "true",
"flags": []
},
{
"name": "ForceConformanceInForLoopScope",
"switch": "Zc:forScope-",
"comment": "Force Conformance in For Loop Scope",
"value": "false",
"flags": []
},
{
"name": "ForceConformanceInForLoopScope",
"switch": "Zc:forScope",
"comment": "Force Conformance in For Loop Scope",
"value": "true",
"flags": []
},
{
"name": "RemoveUnreferencedCodeData",
"switch": "Zc:inline-",
"comment": "Remove unreferenced code and data",
"value": "false",
"flags": []
},
{
"name": "RemoveUnreferencedCodeData",
"switch": "Zc:inline",
"comment": "Remove unreferenced code and data",
"value": "true",
"flags": []
},
{
"name": "EnforceTypeConversionRules",
"switch": "Zc:rvalueCast-",
"comment": "Enforce type conversion rules",
"value": "false",
"flags": []
},
{
"name": "EnforceTypeConversionRules",
"switch": "Zc:rvalueCast",
"comment": "Enforce type conversion rules",
"value": "true",
"flags": []
},
{
"name": "RuntimeTypeInfo",
"switch": "GR-",
"comment": "Enable Run-Time Type Information",
"value": "false",
"flags": []
},
{
"name": "RuntimeTypeInfo",
"switch": "GR",
"comment": "Enable Run-Time Type Information",
"value": "true",
"flags": []
},
{
"name": "OpenMPSupport",
"switch": "openmp-",
"comment": "Open MP Support",
"value": "false",
"flags": []
},
{
"name": "OpenMPSupport",
"switch": "openmp",
"comment": "Open MP Support",
"value": "true",
"flags": []
},
{
"name": "EnableModules",
"switch": "experimental:module",
"comment": "Enable Experimental C++ Standard Library Modules",
"value": "true",
"flags": []
},
{
"name": "ExpandAttributedSource",
"switch": "Fx",
"comment": "Expand Attributed Source",
"value": "true",
"flags": []
},
{
"name": "UseUnicodeForAssemblerListing",
"switch": "FAu",
"comment": "Use Unicode For Assembler Listing",
"value": "true",
"flags": []
},
{
"name": "GenerateModuleDependencies",
"switch": "scanDependencies",
"comment": "Generate Module Dependencies File",
"value": "true",
"flags": [
"Continue"
]
},
{
"name": "GenerateModuleDependencies",
"switch": "sourceDependencies:directives",
"comment": "Generate Module Dependencies File",
"value": "true",
"flags": [
"Continue"
]
},
{
"name": "GenerateXMLDocumentationFiles",
"switch": "doc",
"comment": "Generate XML Documentation Files",
"value": "true",
"flags": [
"UserValue",
"UserIgnored",
"Continue"
]
},
{
"name": "GenerateSourceDependencies",
"switch": "sourceDependencies",
"comment": "Generate Source Dependencies File",
"value": "true",
"flags": [
"Continue"
]
},
{
"name": "BrowseInformation",
"switch": "FR",
"comment": "Enable Browse Information",
"value": "true",
"flags": [
"UserValue",
"UserIgnored",
"Continue"
]
},
{
"name": "TreatAngleIncludeAsExternal",
"switch": "external:anglebrackets",
"comment": "Treat Files Included with Angle Brackets as External",
"value": "true",
"flags": []
},
{
"name": "ExternalTemplatesDiagnostics",
"switch": "external:templates-",
"comment": "Template Diagnostics in External Headers",
"value": "true",
"flags": []
},
{
"name": "DisableAnalyzeExternal",
"switch": "analyze:external-",
"comment": "Disable Code Analysis for External Headers",
"value": "true",
"flags": []
},
{
"name": "ShowIncludes",
"switch": "showIncludes",
"comment": "Show Includes",
"value": "true",
"flags": []
},
{
"name": "EnablePREfast",
"switch": "analyze-",
"comment": "Enable Code Analysis",
"value": "false",
"flags": []
},
{
"name": "EnablePREfast",
"switch": "analyze",
"comment": "Enable Code Analysis",
"value": "true",
"flags": []
},
{
"name": "UseFullPaths",
"switch": "FC",
"comment": "Use Full Paths",
"value": "true",
"flags": []
},
{
"name": "OmitDefaultLibName",
"switch": "Zl",
"comment": "Omit Default Library Name",
"value": "true",
"flags": []
},
{
"name": "AdditionalIncludeDirectories",
"switch": "I",
"comment": "Additional Include Directories",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "AdditionalUsingDirectories",
"switch": "AI",
"comment": "Additional #using Directories",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "AdditionalBMIDirectories",
"switch": "ifcSearchDir",
"comment": "Additional BMI Directories",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "AdditionalModuleDependencies",
"switch": "reference",
"comment": "Additional Module Dependencies",
"value": "",
"flags": [
"UserFollowing",
"SemicolonAppendable"
]
},
{
"name": "AdditionalHeaderUnitDependencies",
"switch": "headerUnit",
"comment": "Additional Header Unit Dependencies",
"value": "",
"flags": [
"UserFollowing",
"SemicolonAppendable"
]
},
{
"name": "PreprocessorDefinitions",
"switch": "D",
"comment": "Preprocessor Definitions",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "UndefinePreprocessorDefinitions",
"switch": "U",
"comment": "Undefine Preprocessor Definitions",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "StdIfcDirectory",
"switch": "stdIfcDir",
"comment": "",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "ExternalDirectoriesEnv",
"switch": "external:env:",
"comment": "External Directories Environment Variables",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "DisableSpecificWarnings",
"switch": "wd",
"comment": "Disable Specific Warnings",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "ForcedIncludeFiles",
"switch": "FI",
"comment": "Forced Include File",
"value": "",
"flags": [
"UserValue",
"UserRequired",
"SemicolonAppendable"
]
},
{
"name": "ForcedIncludeFiles",
"switch": "FI",
"comment": "Forced Include File",
"value": "",
"flags": [
"UserFollowing",
"SemicolonAppendable"
]
},
{
"name": "ForcedUsingFiles",
"switch": "FU",
"comment": "Forced #using File",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "PREfastAdditionalPlugins",
"switch": "analyze:plugin",
"comment": "Additional Code Analysis Native plugins",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "TreatSpecificWarningsAsErrors",
"switch": "we",
"comment": "Treat Specific Warnings As Errors",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "DynamicDebuggingSuffix",
"switch": "dynamicdeopt:suffix",
"comment": "",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "UseDynamicDebugging",
"switch": "dynamicdeopt",
"comment": "Support C++ Dynamic Debugging",
"value": "true",
"flags": []
},
{
"name": "WarningVersion",
"switch": "Wv:",
"comment": "Warning Version",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "PreprocessOutputPath",
"switch": "Fi",
"comment": "Preprocess Output Path",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "PrecompiledHeaderFile",
"switch": "Yu",
"comment": "Precompiled Header File",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "PrecompiledHeaderFile",
"switch": "Yc",
"comment": "Precompiled Header File",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "PrecompiledHeaderOutputFile",
"switch": "Fp",
"comment": "Precompiled Header Output File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "AssemblerListingLocation",
"switch": "Fa",
"comment": "ASM List Location",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ModuleOutputFile",
"switch": "ifcOutput",
"comment": "Module Output File Name",
"value": "",
"flags": [
"UserFollowing"
]
},
{
"name": "ModuleDependenciesFile",
"switch": "scanDependencies",
"comment": "Module Dependencies File Name",
"value": "",
"flags": [
"UserFollowing"
]
},
{
"name": "ModuleDependenciesFile",
"switch": "sourceDependencies:directives",
"comment": "Module Dependencies File Name",
"value": "",
"flags": [
"UserFollowing"
]
},
{
"name": "ObjectFileName",
"switch": "Fo",
"comment": "Object File Name",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ProgramDataBaseFileName",
"switch": "Fd",
"comment": "Program Database File Name",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "XMLDocumentationFileName",
"switch": "doc",
"comment": "XML Documentation File Name",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "SourceDependenciesFile",
"switch": "sourceDependencies",
"comment": "Source Dependencies File Name",
"value": "",
"flags": [
"UserFollowing"
]
},
{
"name": "BrowseInformationFile",
"switch": "FR",
"comment": "Browse Information File",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "PREfastLog",
"switch": "analyze:log",
"comment": "Code Analysis Log",
"value": "",
"flags": [
"UserFollowing"
]
},
{
"name": "PREfastProjectDirectory",
"switch": "analyze:projectdirectory",
"comment": "Code Analysis Project Directory",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "PREfastRulesetDirectories",
"switch": "analyze:rulesetdirectory",
"comment": "Code Analysis Ruleset Directories",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "PREfastRulesetFile",
"switch": "analyze:ruleset",
"comment": "Code Analysis Ruleset File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ProcessorNumber",
"switch": "MP",
"comment": "Number of processors",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
}
]
@@ -0,0 +1,560 @@
[
{
"name": "ProjectName",
"switch": "out:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "OutputType",
"switch": "target:exe",
"comment": "",
"value": "Exe",
"flags": []
},
{
"name": "OutputType",
"switch": "target:winexe",
"comment": "",
"value": "Winexe",
"flags": []
},
{
"name": "OutputType",
"switch": "target:library",
"comment": "",
"value": "Library",
"flags": []
},
{
"name": "OutputType",
"switch": "target:module",
"comment": "",
"value": "Module",
"flags": []
},
{
"name": "DocumentationFile",
"switch": "doc",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "Platform",
"switch": "platform:x86",
"comment": "",
"value": "x86",
"flags": []
},
{
"name": "Platform",
"switch": "platform:Itanium",
"comment": "",
"value": "Itanium",
"flags": []
},
{
"name": "Platform",
"switch": "platform:x64",
"comment": "",
"value": "x64",
"flags": []
},
{
"name": "Platform",
"switch": "platform:arm",
"comment": "",
"value": "arm",
"flags": []
},
{
"name": "Platform",
"switch": "platform:anycpu32bitpreferred",
"comment": "",
"value": "anycpu32bitpreferred",
"flags": []
},
{
"name": "Platform",
"switch": "platform:anycpu",
"comment": "",
"value": "anycpu",
"flags": []
},
{
"name": "References",
"switch": "reference:",
"comment": "mit alias",
"value": "",
"flags": []
},
{
"name": "References",
"switch": "reference:",
"comment": "dateiliste",
"value": "",
"flags": []
},
{
"name": "AddModules",
"switch": "addmodule:",
"comment": "",
"value": "",
"flags": [
"SemicolonAppendable"
]
},
{
"name": "Win32Resource",
"switch": "win32res:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "ApplicationIcon",
"switch": "win32icon:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "ApplicationManifest",
"switch": "win32manifest:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "NoWin32Manifest",
"switch": "nowin32manifest",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "DefineDebug",
"switch": "debug",
"comment": "",
"value": "true",
"flags": [
"Continue"
]
},
{
"name": "DebugSymbols",
"switch": "debug",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "DebugSymbols",
"switch": "debug-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "DebugSymbols",
"switch": "debug+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "DebugType",
"switch": "debug:none",
"comment": "",
"value": "none",
"flags": []
},
{
"name": "DebugType",
"switch": "debug:full",
"comment": "",
"value": "full",
"flags": []
},
{
"name": "DebugType",
"switch": "debug:pdbonly",
"comment": "",
"value": "pdbonly",
"flags": []
},
{
"name": "DebugType",
"switch": "debug:portable",
"comment": "",
"value": "portable",
"flags": []
},
{
"name": "DebugType",
"switch": "debug:embedded",
"comment": "",
"value": "embedded",
"flags": []
},
{
"name": "Optimize",
"switch": "optimize",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "Optimize",
"switch": "optimize-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "Optimize",
"switch": "optimize+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "TreatWarningsAsErrors",
"switch": "warnaserror",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "TreatWarningsAsErrors",
"switch": "warnaserror-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "TreatWarningsAsErrors",
"switch": "warnaserror+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "WarningsAsErrors",
"switch": "warnaserror",
"comment": "",
"value": "",
"flags": []
},
{
"name": "WarningsAsErrors",
"switch": "warnaserror-",
"comment": "",
"value": "",
"flags": []
},
{
"name": "WarningsAsErrors",
"switch": "warnaserror+",
"comment": "",
"value": "",
"flags": []
},
{
"name": "WarningsAsErrors",
"switch": "warnaserror:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired",
"CommaAppendable"
]
},
{
"name": "WarningLevel",
"switch": "warn:0",
"comment": "",
"value": "0",
"flags": []
},
{
"name": "WarningLevel",
"switch": "warn:1",
"comment": "",
"value": "1",
"flags": []
},
{
"name": "WarningLevel",
"switch": "warn:2",
"comment": "",
"value": "2",
"flags": []
},
{
"name": "WarningLevel",
"switch": "warn:3",
"comment": "",
"value": "3",
"flags": []
},
{
"name": "WarningLevel",
"switch": "warn:4",
"comment": "",
"value": "4",
"flags": []
},
{
"name": "NoWarn",
"switch": "nowarn:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired",
"CommaAppendable"
]
},
{
"name": "CheckForOverflowUnderflow",
"switch": "checked",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "CheckForOverflowUnderflow",
"switch": "checked-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "CheckForOverflowUnderflow",
"switch": "checked+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "AllowUnsafeBlocks",
"switch": "unsafe",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "AllowUnsafeBlocks",
"switch": "unsafe-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "AllowUnsafeBlocks",
"switch": "unsafe+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "DefineConstants",
"switch": "define:",
"comment": "",
"value": "",
"flags": [
"SemicolonAppendable",
"UserValue"
]
},
{
"name": "LangVersion",
"switch": "langversion:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "DelaySign",
"switch": "delaysign",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "DelaySign",
"switch": "delaysign-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "DelaySign",
"switch": "delaysign+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "AssemblyOriginatorKeyFile",
"switch": "keyfile",
"comment": "",
"value": "",
"flags": []
},
{
"name": "KeyContainerName",
"switch": "keycontainer",
"comment": "",
"value": "",
"flags": []
},
{
"name": "NoLogo",
"switch": "nologo",
"comment": "",
"value": "",
"flags": []
},
{
"name": "NoConfig",
"switch": "noconfig",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "BaseAddress",
"switch": "baseaddress:",
"comment": "",
"value": "",
"flags": []
},
{
"name": "CodePage",
"switch": "codepage",
"comment": "",
"value": "",
"flags": []
},
{
"name": "Utf8Output",
"switch": "utf8output",
"comment": "",
"value": "",
"flags": []
},
{
"name": "MainEntryPoint",
"switch": "main:",
"comment": "",
"value": "",
"flags": []
},
{
"name": "GenerateFullPaths",
"switch": "fullpaths",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "FileAlignment",
"switch": "filealign",
"comment": "",
"value": "",
"flags": []
},
{
"name": "PdbFile",
"switch": "pdb:",
"comment": "",
"value": "",
"flags": []
},
{
"name": "NoStdLib",
"switch": "nostdlib",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "NoStdLib",
"switch": "nostdlib-",
"comment": "",
"value": "false",
"flags": []
},
{
"name": "NoStdLib",
"switch": "nostdlib+",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "SubsystemVersion",
"switch": "subsystemversion",
"comment": "",
"value": "",
"flags": []
},
{
"name": "AdditionalLibPaths",
"switch": "lib:",
"comment": "",
"value": "",
"flags": []
},
{
"name": "ErrorReport",
"switch": "errorreport:none",
"comment": "Do Not Send Report",
"value": "none",
"flags": []
},
{
"name": "ErrorReport",
"switch": "errorreport:prompt",
"comment": "Prompt Immediately",
"value": "prompt",
"flags": []
},
{
"name": "ErrorReport",
"switch": "errorreport:queue",
"comment": "Queue For Next Login",
"value": "queue",
"flags": []
},
{
"name": "ErrorReport",
"switch": "errorreport:send",
"comment": "Send Automatically",
"value": "send",
"flags": []
}
]
+1367
View File
@@ -0,0 +1,1367 @@
[
{
"name": "ShowProgress",
"switch": "",
"comment": "Not Set",
"value": "NotSet",
"flags": []
},
{
"name": "ShowProgress",
"switch": "VERBOSE",
"comment": "Display all progress messages",
"value": "LinkVerbose",
"flags": []
},
{
"name": "ShowProgress",
"switch": "VERBOSE:Lib",
"comment": "For Libraries Searched",
"value": "LinkVerboseLib",
"flags": []
},
{
"name": "ShowProgress",
"switch": "VERBOSE:ICF",
"comment": "About COMDAT folding during optimized linking",
"value": "LinkVerboseICF",
"flags": []
},
{
"name": "ShowProgress",
"switch": "VERBOSE:REF",
"comment": "About data removed during optimized linking",
"value": "LinkVerboseREF",
"flags": []
},
{
"name": "ShowProgress",
"switch": "VERBOSE:SAFESEH",
"comment": "About Modules incompatible with SEH",
"value": "LinkVerboseSAFESEH",
"flags": []
},
{
"name": "ShowProgress",
"switch": "VERBOSE:CLR",
"comment": "About linker activity related to managed code",
"value": "LinkVerboseCLR",
"flags": []
},
{
"name": "ForceFileOutput",
"switch": "FORCE",
"comment": "Enabled",
"value": "Enabled",
"flags": []
},
{
"name": "ForceFileOutput",
"switch": "FORCE:MULTIPLE",
"comment": "Multiply Defined Symbol Only",
"value": "MultiplyDefinedSymbolOnly",
"flags": []
},
{
"name": "ForceFileOutput",
"switch": "FORCE:UNRESOLVED",
"comment": "Undefined Symbol Only",
"value": "UndefinedSymbolOnly",
"flags": []
},
{
"name": "CreateHotPatchableImage",
"switch": "FUNCTIONPADMIN",
"comment": "Enabled",
"value": "Enabled",
"flags": []
},
{
"name": "CreateHotPatchableImage",
"switch": "FUNCTIONPADMIN:5",
"comment": "X86 Image Only",
"value": "X86Image",
"flags": []
},
{
"name": "CreateHotPatchableImage",
"switch": "FUNCTIONPADMIN:6",
"comment": "X64 Image Only",
"value": "X64Image",
"flags": []
},
{
"name": "CreateHotPatchableImage",
"switch": "FUNCTIONPADMIN:16",
"comment": "Itanium Image Only",
"value": "ItaniumImage",
"flags": []
},
{
"name": "UACExecutionLevel",
"switch": "level='asInvoker'",
"comment": "asInvoker",
"value": "AsInvoker",
"flags": []
},
{
"name": "UACExecutionLevel",
"switch": "level='highestAvailable'",
"comment": "highestAvailable",
"value": "HighestAvailable",
"flags": []
},
{
"name": "UACExecutionLevel",
"switch": "level='requireAdministrator'",
"comment": "requireAdministrator",
"value": "RequireAdministrator",
"flags": []
},
{
"name": "GenerateDebugInformation",
"switch": "DEBUG",
"comment": "Generate Debug Information",
"value": "true",
"flags": [
"CaseInsensitive"
]
},
{
"name": "GenerateDebugInformation",
"switch": "DEBUG:FASTLINK",
"comment": "Generate Debug Information optimized for faster links",
"value": "DebugFastLink",
"flags": [
"CaseInsensitive"
]
},
{
"name": "GenerateDebugInformation",
"switch": "DEBUG:FULL",
"comment": "Generate Debug Information optimized for sharing and publishing",
"value": "DebugFull",
"flags": [
"CaseInsensitive"
]
},
{
"name": "GenerateDebugInformation",
"switch": "DEBUG:NONE",
"comment": "Produces no debugging information",
"value": "false",
"flags": [
"CaseInsensitive"
]
},
{
"name": "SubSystem",
"switch": "",
"comment": "Not Set",
"value": "NotSet",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:CONSOLE",
"comment": "Console",
"value": "Console",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:WINDOWS",
"comment": "Windows",
"value": "Windows",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:NATIVE",
"comment": "Native",
"value": "Native",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:EFI_APPLICATION",
"comment": "EFI Application",
"value": "EFI Application",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER",
"comment": "EFI Boot Service Driver",
"value": "EFI Boot Service Driver",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:EFI_ROM",
"comment": "EFI ROM",
"value": "EFI ROM",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:EFI_RUNTIME_DRIVER",
"comment": "EFI Runtime",
"value": "EFI Runtime",
"flags": []
},
{
"name": "SubSystem",
"switch": "SUBSYSTEM:POSIX",
"comment": "POSIX",
"value": "POSIX",
"flags": []
},
{
"name": "Driver",
"switch": "",
"comment": "Not Set",
"value": "NotSet",
"flags": []
},
{
"name": "Driver",
"switch": "Driver",
"comment": "Driver",
"value": "Driver",
"flags": []
},
{
"name": "Driver",
"switch": "DRIVER:UPONLY",
"comment": "UP Only",
"value": "UpOnly",
"flags": []
},
{
"name": "Driver",
"switch": "DRIVER:WDM",
"comment": "WDM",
"value": "WDM",
"flags": []
},
{
"name": "LinkTimeCodeGeneration",
"switch": "",
"comment": "Default",
"value": "Default",
"flags": []
},
{
"name": "LinkTimeCodeGeneration",
"switch": "LTCG:incremental",
"comment": "Use Fast Link Time Code Generation",
"value": "UseFastLinkTimeCodeGeneration",
"flags": []
},
{
"name": "LinkTimeCodeGeneration",
"switch": "LTCG",
"comment": "Use Link Time Code Generation",
"value": "UseLinkTimeCodeGeneration",
"flags": []
},
{
"name": "LinkTimeCodeGeneration",
"switch": "LTCG:PGInstrument",
"comment": "Profile Guided Optimization - Instrument",
"value": "PGInstrument",
"flags": []
},
{
"name": "LinkTimeCodeGeneration",
"switch": "LTCG:PGOptimize",
"comment": "Profile Guided Optimization - Optimization",
"value": "PGOptimization",
"flags": []
},
{
"name": "LinkTimeCodeGeneration",
"switch": "LTCG:PGUpdate",
"comment": "Profile Guided Optimization - Update",
"value": "PGUpdate",
"flags": []
},
{
"name": "GenerateWindowsMetadata",
"switch": "WINMD",
"comment": "Yes",
"value": "true",
"flags": []
},
{
"name": "GenerateWindowsMetadata",
"switch": "WINMD:NO",
"comment": "No",
"value": "false",
"flags": []
},
{
"name": "WindowsMetadataSignHash",
"switch": "WINMDSIGNHASH:SHA1",
"comment": "SHA1",
"value": "SHA1",
"flags": []
},
{
"name": "WindowsMetadataSignHash",
"switch": "WINMDSIGNHASH:SHA256",
"comment": "SHA256",
"value": "SHA256",
"flags": []
},
{
"name": "WindowsMetadataSignHash",
"switch": "WINMDSIGNHASH:SHA384",
"comment": "SHA384",
"value": "SHA384",
"flags": []
},
{
"name": "WindowsMetadataSignHash",
"switch": "WINMDSIGNHASH:SHA512",
"comment": "SHA512",
"value": "SHA512",
"flags": []
},
{
"name": "TargetMachine",
"switch": "",
"comment": "Not Set",
"value": "NotSet",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:ARM",
"comment": "MachineARM",
"value": "MachineARM",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:ARM64",
"comment": "MachineARM64",
"value": "MachineARM64",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:ARM64EC",
"comment": "MachineARM64EC",
"value": "MachineARM64EC",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:ARM64X",
"comment": "MachineARM64X",
"value": "MachineARM64X",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:EBC",
"comment": "MachineEBC",
"value": "MachineEBC",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:X64",
"comment": "MachineX64",
"value": "MachineX64",
"flags": []
},
{
"name": "TargetMachine",
"switch": "MACHINE:X86",
"comment": "MachineX86",
"value": "MachineX86",
"flags": []
},
{
"name": "CLRThreadAttribute",
"switch": "CLRTHREADATTRIBUTE:MTA",
"comment": "MTA threading attribute",
"value": "MTAThreadingAttribute",
"flags": []
},
{
"name": "CLRThreadAttribute",
"switch": "CLRTHREADATTRIBUTE:STA",
"comment": "STA threading attribute",
"value": "STAThreadingAttribute",
"flags": []
},
{
"name": "CLRThreadAttribute",
"switch": "CLRTHREADATTRIBUTE:NONE",
"comment": "Default threading attribute",
"value": "DefaultThreadingAttribute",
"flags": []
},
{
"name": "CLRImageType",
"switch": "CLRIMAGETYPE:IJW",
"comment": "Force IJW image",
"value": "ForceIJWImage",
"flags": []
},
{
"name": "CLRImageType",
"switch": "CLRIMAGETYPE:PURE",
"comment": "Force Pure IL Image",
"value": "ForcePureILImage",
"flags": []
},
{
"name": "CLRImageType",
"switch": "CLRIMAGETYPE:SAFE",
"comment": "Force Safe IL Image",
"value": "ForceSafeILImage",
"flags": []
},
{
"name": "CLRImageType",
"switch": "",
"comment": "Default image type",
"value": "Default",
"flags": []
},
{
"name": "SignHash",
"switch": "CLRSIGNHASH:SHA1",
"comment": "SHA1",
"value": "SHA1",
"flags": []
},
{
"name": "SignHash",
"switch": "CLRSIGNHASH:SHA256",
"comment": "SHA256",
"value": "SHA256",
"flags": []
},
{
"name": "SignHash",
"switch": "CLRSIGNHASH:SHA384",
"comment": "SHA384",
"value": "SHA384",
"flags": []
},
{
"name": "SignHash",
"switch": "CLRSIGNHASH:SHA512",
"comment": "SHA512",
"value": "SHA512",
"flags": []
},
{
"name": "LinkErrorReporting",
"switch": "ERRORREPORT:PROMPT",
"comment": "PromptImmediately",
"value": "PromptImmediately",
"flags": []
},
{
"name": "LinkErrorReporting",
"switch": "ERRORREPORT:QUEUE",
"comment": "Queue For Next Login",
"value": "QueueForNextLogin",
"flags": []
},
{
"name": "LinkErrorReporting",
"switch": "ERRORREPORT:SEND",
"comment": "Send Error Report",
"value": "SendErrorReport",
"flags": []
},
{
"name": "LinkErrorReporting",
"switch": "ERRORREPORT:NONE",
"comment": "No Error Report",
"value": "NoErrorReport",
"flags": []
},
{
"name": "CLRSupportLastError",
"switch": "CLRSupportLastError",
"comment": "Enabled",
"value": "Enabled",
"flags": []
},
{
"name": "CLRSupportLastError",
"switch": "CLRSupportLastError:NO",
"comment": "Disabled",
"value": "Disabled",
"flags": []
},
{
"name": "CLRSupportLastError",
"switch": "CLRSupportLastError:SYSTEMDLL",
"comment": "System Dlls Only",
"value": "SystemDlls",
"flags": []
},
{
"name": "LinkIncremental",
"switch": "INCREMENTAL:NO",
"comment": "Enable Incremental Linking",
"value": "false",
"flags": []
},
{
"name": "LinkIncremental",
"switch": "INCREMENTAL",
"comment": "Enable Incremental Linking",
"value": "true",
"flags": []
},
{
"name": "SuppressStartupBanner",
"switch": "NOLOGO",
"comment": "Suppress Startup Banner",
"value": "true",
"flags": []
},
{
"name": "LinkStatus",
"switch": "LTCG:NOSTATUS",
"comment": "Link Status",
"value": "false",
"flags": []
},
{
"name": "LinkStatus",
"switch": "LTCG:STATUS",
"comment": "Link Status",
"value": "true",
"flags": []
},
{
"name": "PreventDllBinding",
"switch": "ALLOWBIND:NO",
"comment": "Prevent Dll Binding",
"value": "false",
"flags": []
},
{
"name": "PreventDllBinding",
"switch": "ALLOWBIND",
"comment": "Prevent Dll Binding",
"value": "true",
"flags": []
},
{
"name": "TreatLinkerWarningAsErrors",
"switch": "WX:NO",
"comment": "Treat Linker Warning As Errors",
"value": "false",
"flags": []
},
{
"name": "TreatLinkerWarningAsErrors",
"switch": "WX",
"comment": "Treat Linker Warning As Errors",
"value": "true",
"flags": []
},
{
"name": "IgnoreAllDefaultLibraries",
"switch": "NODEFAULTLIB",
"comment": "Ignore All Default Libraries",
"value": "true",
"flags": []
},
{
"name": "GenerateManifest",
"switch": "MANIFEST:NO",
"comment": "Generate Manifest",
"value": "false",
"flags": []
},
{
"name": "GenerateManifest",
"switch": "MANIFEST",
"comment": "Generate Manifest",
"value": "true",
"flags": []
},
{
"name": "AllowIsolation",
"switch": "ALLOWISOLATION:NO",
"comment": "Allow Isolation",
"value": "false",
"flags": []
},
{
"name": "AllowIsolation",
"switch": "",
"comment": "Allow Isolation",
"value": "true",
"flags": []
},
{
"name": "EnableUAC",
"switch": "MANIFESTUAC:",
"comment": "",
"value": "",
"flags": [
"UserValue",
"UserRequired",
"SpaceAppendable"
]
},
{
"name": "UACUIAccess",
"switch": "uiAccess='false'",
"comment": "UAC Bypass UI Protection",
"value": "false",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "UACUIAccess",
"switch": "uiAccess='false'",
"comment": "UAC Bypass UI Protection",
"value": "false",
"flags": []
},
{
"name": "UACUIAccess",
"switch": "uiAccess='true'",
"comment": "UAC Bypass UI Protection",
"value": "true",
"flags": []
},
{
"name": "ManifestEmbed",
"switch": "manifest:embed",
"comment": "Embed Manifest",
"value": "true",
"flags": []
},
{
"name": "GenerateMapFile",
"switch": "MAP",
"comment": "Generate Map File",
"value": "true",
"flags": [
"UserValue",
"UserIgnored",
"Continue"
]
},
{
"name": "MapExports",
"switch": "MAPINFO:EXPORTS",
"comment": "Map Exports",
"value": "true",
"flags": []
},
{
"name": "AssemblyDebug",
"switch": "ASSEMBLYDEBUG:DISABLE",
"comment": "Debuggable Assembly",
"value": "false",
"flags": []
},
{
"name": "AssemblyDebug",
"switch": "ASSEMBLYDEBUG",
"comment": "Debuggable Assembly",
"value": "true",
"flags": []
},
{
"name": "LargeAddressAware",
"switch": "LARGEADDRESSAWARE:NO",
"comment": "Enable Large Addresses",
"value": "false",
"flags": []
},
{
"name": "LargeAddressAware",
"switch": "LARGEADDRESSAWARE",
"comment": "Enable Large Addresses",
"value": "true",
"flags": []
},
{
"name": "TerminalServerAware",
"switch": "TSAWARE:NO",
"comment": "Terminal Server",
"value": "false",
"flags": []
},
{
"name": "TerminalServerAware",
"switch": "TSAWARE",
"comment": "Terminal Server",
"value": "true",
"flags": []
},
{
"name": "SwapRunFromCD",
"switch": "SWAPRUN:CD",
"comment": "Swap Run From CD",
"value": "true",
"flags": []
},
{
"name": "SwapRunFromNET",
"switch": "SWAPRUN:NET",
"comment": "Swap Run From Network",
"value": "true",
"flags": []
},
{
"name": "OptimizeReferences",
"switch": "OPT:NOREF",
"comment": "References",
"value": "false",
"flags": []
},
{
"name": "OptimizeReferences",
"switch": "OPT:REF",
"comment": "References",
"value": "true",
"flags": []
},
{
"name": "EnableCOMDATFolding",
"switch": "OPT:NOICF",
"comment": "Enable COMDAT Folding",
"value": "false",
"flags": []
},
{
"name": "EnableCOMDATFolding",
"switch": "OPT:ICF",
"comment": "Enable COMDAT Folding",
"value": "true",
"flags": []
},
{
"name": "IgnoreEmbeddedIDL",
"switch": "IGNOREIDL",
"comment": "Ignore Embedded IDL",
"value": "true",
"flags": []
},
{
"name": "AppContainer",
"switch": "APPCONTAINER",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "WindowsMetadataLinkDelaySign",
"switch": "WINMDDELAYSIGN:NO",
"comment": "Windows Metadata Delay Sign",
"value": "false",
"flags": []
},
{
"name": "WindowsMetadataLinkDelaySign",
"switch": "WINMDDELAYSIGN",
"comment": "Windows Metadata Delay Sign",
"value": "true",
"flags": []
},
{
"name": "NoEntryPoint",
"switch": "NOENTRY",
"comment": "No Entry Point",
"value": "true",
"flags": []
},
{
"name": "SetChecksum",
"switch": "RELEASE",
"comment": "Set Checksum",
"value": "true",
"flags": []
},
{
"name": "RandomizedBaseAddress",
"switch": "DYNAMICBASE:NO",
"comment": "Randomized Base Address",
"value": "false",
"flags": []
},
{
"name": "RandomizedBaseAddress",
"switch": "DYNAMICBASE",
"comment": "Randomized Base Address",
"value": "true",
"flags": []
},
{
"name": "FixedBaseAddress",
"switch": "FIXED:NO",
"comment": "Fixed Base Address",
"value": "false",
"flags": []
},
{
"name": "FixedBaseAddress",
"switch": "FIXED",
"comment": "Fixed Base Address",
"value": "true",
"flags": []
},
{
"name": "DataExecutionPrevention",
"switch": "NXCOMPAT:NO",
"comment": "Data Execution Prevention (DEP)",
"value": "false",
"flags": []
},
{
"name": "DataExecutionPrevention",
"switch": "NXCOMPAT",
"comment": "Data Execution Prevention (DEP)",
"value": "true",
"flags": []
},
{
"name": "TurnOffAssemblyGeneration",
"switch": "NOASSEMBLY",
"comment": "Turn Off Assembly Generation",
"value": "true",
"flags": []
},
{
"name": "SupportUnloadOfDelayLoadedDLL",
"switch": "DELAY:UNLOAD",
"comment": "Unload delay loaded DLL",
"value": "true",
"flags": []
},
{
"name": "SupportNobindOfDelayLoadedDLL",
"switch": "DELAY:NOBIND",
"comment": "Nobind delay loaded DLL",
"value": "true",
"flags": []
},
{
"name": "Profile",
"switch": "PROFILE",
"comment": "Profile",
"value": "true",
"flags": []
},
{
"name": "LinkDelaySign",
"switch": "DELAYSIGN:NO",
"comment": "Delay Sign",
"value": "false",
"flags": []
},
{
"name": "LinkDelaySign",
"switch": "DELAYSIGN",
"comment": "Delay Sign",
"value": "true",
"flags": []
},
{
"name": "CLRUnmanagedCodeCheck",
"switch": "CLRUNMANAGEDCODECHECK:NO",
"comment": "CLR Unmanaged Code Check",
"value": "false",
"flags": []
},
{
"name": "CLRUnmanagedCodeCheck",
"switch": "CLRUNMANAGEDCODECHECK",
"comment": "CLR Unmanaged Code Check",
"value": "true",
"flags": []
},
{
"name": "DetectOneDefinitionRule",
"switch": "ODR",
"comment": "Detect One Definition Rule violations",
"value": "true",
"flags": []
},
{
"name": "CETCompat",
"switch": "CETCOMPAT:NO",
"comment": "CET Shadow Stack Compatible",
"value": "false",
"flags": []
},
{
"name": "CETCompat",
"switch": "CETCOMPAT",
"comment": "CET Shadow Stack Compatible",
"value": "true",
"flags": []
},
{
"name": "ImageHasSafeExceptionHandlers",
"switch": "SAFESEH:NO",
"comment": "Image Has Safe Exception Handlers",
"value": "false",
"flags": []
},
{
"name": "ImageHasSafeExceptionHandlers",
"switch": "SAFESEH",
"comment": "Image Has Safe Exception Handlers",
"value": "true",
"flags": []
},
{
"name": "LinkGuardEHContMetadata",
"switch": "guard:ehcont",
"comment": "Enable EH Continuation Metadata",
"value": "true",
"flags": []
},
{
"name": "LinkGuardSignedReturns",
"switch": "guard:nodelayloadsignret",
"comment": "Enable Signed Returns",
"value": "false",
"flags": []
},
{
"name": "LinkGuardSignedReturns",
"switch": "guard:delayloadsignret",
"comment": "Enable Signed Returns",
"value": "true",
"flags": []
},
{
"name": "LinkDLL",
"switch": "DLL",
"comment": "",
"value": "true",
"flags": []
},
{
"name": "AdditionalLibraryDirectories",
"switch": "LIBPATH:",
"comment": "Additional Library Directories",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "Natvis",
"switch": "NATVIS:",
"comment": "Natvis files",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "SpecifySectionAttributes",
"switch": "SECTION:",
"comment": "Specify Section Attributes",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "IgnoreSpecificDefaultLibraries",
"switch": "NODEFAULTLIB:",
"comment": "Ignore Specific Default Libraries",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "AddModuleNamesToAssembly",
"switch": "ASSEMBLYMODULE:",
"comment": "Add Module to Assembly",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "EmbedManagedResourceFile",
"switch": "ASSEMBLYRESOURCE:",
"comment": "Embed Managed Resource File",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "ForceSymbolReferences",
"switch": "INCLUDE:",
"comment": "Force Symbol References",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "DelayLoadDLLs",
"switch": "DELAYLOAD:",
"comment": "Delay Loaded Dlls",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "AssemblyLinkResource",
"switch": "ASSEMBLYLINKRESOURCE:",
"comment": "Assembly Link Resource",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "AdditionalManifestDependencies",
"switch": "MANIFESTDEPENDENCY:",
"comment": "Additional Manifest Dependencies",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "ManifestInput",
"switch": "manifestinput:",
"comment": "Manifest Input",
"value": "",
"flags": [
"UserValue",
"SemicolonAppendable"
]
},
{
"name": "OutputFile",
"switch": "OUT:",
"comment": "Output File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "Version",
"switch": "VERSION:",
"comment": "Version",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "IncrementalLinkDatabaseFile",
"switch": "ILK:",
"comment": "Incremental Link Database File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "MSDOSStubFileName",
"switch": "STUB:",
"comment": "MS-DOS Stub File Name",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ModuleDefinitionFile",
"switch": "DEF:",
"comment": "Module Definition File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ManifestFile",
"switch": "ManifestFile:",
"comment": "Manifest File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ProgramDatabaseFile",
"switch": "PDB:",
"comment": "Generate Program Database File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "StripPrivateSymbols",
"switch": "PDBSTRIPPED:",
"comment": "Strip Private Symbols",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "MapFileName",
"switch": "MAP:",
"comment": "Map File Name",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "DynamicDebuggingSuffix",
"switch": "dynamicdeopt:suffix=",
"comment": "",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "UseDynamicDebugging",
"switch": "dynamicdeopt",
"comment": "Support C++ Dynamic Debugging",
"value": "true",
"flags": []
},
{
"name": "HeapReserveSize",
"switch": "HEAP:",
"comment": "Heap Reserve Size",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "HeapCommitSize",
"switch": "HEAP",
"comment": "Heap Commit Size",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "StackReserveSize",
"switch": "STACK:",
"comment": "Stack Reserve Size",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "StackCommitSize",
"switch": "STACK",
"comment": "Stack Commit Size",
"value": "",
"flags": [
"UserValue",
"UserRequired"
]
},
{
"name": "FunctionOrder",
"switch": "ORDER:@",
"comment": "Function Order",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ProfileGuidedDatabase",
"switch": "PGD:",
"comment": "Profile Guided Database",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "LinkTimeCodeGenerationObjectFile",
"switch": "LTCGOUT:",
"comment": "Link Time Code Generation Object File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "MidlCommandFile",
"switch": "MIDL:@",
"comment": "MIDL Commands",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "MergedIDLBaseFileName",
"switch": "IDLOUT:",
"comment": "Merged IDL Base File Name",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "TypeLibraryFile",
"switch": "TLBOUT:",
"comment": "Type Library",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "WindowsMetadataFile",
"switch": "WINMDFILE:",
"comment": "Windows Metadata File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "WindowsMetadataLinkKeyFile",
"switch": "WINMDKEYFILE:",
"comment": "Windows Metadata Key File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "WindowsMetadataKeyContainer",
"switch": "WINMDKEYCONTAINER:",
"comment": "Windows Metadata Key Container",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "EntryPointSymbol",
"switch": "ENTRY:",
"comment": "Entry Point",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "BaseAddress",
"switch": "BASE:",
"comment": "Base Address",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "ImportLibrary",
"switch": "IMPLIB:",
"comment": "Import Library",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "LinkKeyFile",
"switch": "KEYFILE:",
"comment": "Key File",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "KeyContainer",
"switch": "KEYCONTAINER:",
"comment": "Key Container",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "TypeLibraryResourceID",
"switch": "TLBID:",
"comment": "TypeLib Resource ID",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "SectionAlignment",
"switch": "ALIGN:",
"comment": "SectionAlignment",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "PdbThreads",
"switch": "pdbthreads:",
"comment": "",
"value": "",
"flags": [
"UserValue"
]
},
{
"name": "CgThreads",
"switch": "cgthreads:",
"comment": "",
"value": "",
"flags": [
"UserValue"
]
}
]
+7 -1
View File
@@ -203,9 +203,12 @@ if(BUILD_TESTING)
set(info_vs15 "VS_15_DIR")
set(info_vs16 "VS_16_DIR")
set(info_vs17 "VS_17_DIR")
set(info_vs18 "VS_18_DIR")
set(vs_versions)
if(WIN32)
if(NOT CMAKE_VERSION VERSION_LESS 3.21.20210624)
if(NOT CMAKE_VERSION VERSION_LESS 4.2)
set(vs_versions vs15 vs16 vs17 vs18)
elseif(NOT CMAKE_VERSION VERSION_LESS 3.21)
set(vs_versions vs15 vs16 vs17)
elseif(NOT CMAKE_VERSION VERSION_LESS 3.14)
set(vs_versions vs15 vs16)
@@ -2410,6 +2413,9 @@ if(BUILD_TESTING)
if(vs17 AND CMake_TEST_ANDROID_VS17)
add_test_VSAndroid(vs17 "Visual Studio 17 2022" "ARM")
endif()
if(vs18 AND CMake_TEST_ANDROID_VS18)
add_test_VSAndroid(vs18 "Visual Studio 18 2026" "ARM")
endif()
if(APPLE)
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
@@ -413,7 +413,7 @@ function(run_EnvironmentGenerator)
unset(ENV{CMAKE_GENERATOR_PLATFORM})
endif()
# Instance is available since VS 2017.
if(RunCMake_GENERATOR MATCHES "Visual Studio 1[567].*")
if(RunCMake_GENERATOR MATCHES "Visual Studio 1[5678].*")
set(ENV{CMAKE_GENERATOR_INSTANCE} "invalid")
# Envvar shouldn't affect existing build tree
run_cmake_command(Envgen-instance-existing ${CMAKE_COMMAND} -E chdir ..
@@ -27,7 +27,7 @@ else()
unset(RunCMake_TEST_OPTIONS)
endif()
if("${RunCMake_GENERATOR}" MATCHES "^Visual Studio (1[4567])( 20[0-9][0-9])?$")
if("${RunCMake_GENERATOR}" MATCHES "^Visual Studio (1[45678])( 20[0-9][0-9])?$")
unset(ENV{WindowsSDKVersion})
set(RunCMake_GENERATOR_PLATFORM "Test Platform,nocomma")
@@ -64,7 +64,7 @@ if("${RunCMake_GENERATOR}" MATCHES "Visual Studio")
run_cmake(BadToolsetHostArch)
set(RunCMake_GENERATOR_TOOLSET "Test Toolset,host=x64,host=x86")
run_cmake(BadToolsetHostArchTwice)
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[567]")
if("${RunCMake_GENERATOR}" MATCHES "Visual Studio 1[5678]")
set(RunCMake_GENERATOR_TOOLSET "VCTargetsPath=Test Path")
run_cmake(TestToolsetVCTargetsPathOnly)
set(RunCMake_GENERATOR_TOOLSET "Test Toolset,version=Test Toolset Version")
@@ -2,7 +2,7 @@ message(STATUS "CMAKE_VS_PLATFORM_TOOLSET='${CMAKE_VS_PLATFORM_TOOLSET}'")
message(STATUS "CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE='${CMAKE_VS_PLATFORM_TOOLSET_HOST_ARCHITECTURE}'")
message(STATUS "CMAKE_HOST_SYSTEM_PROCESSOR='${CMAKE_HOST_SYSTEM_PROCESSOR}'")
if(CMAKE_GENERATOR MATCHES "Visual Studio 1[67]")
if(CMAKE_GENERATOR MATCHES "Visual Studio 1[678]")
cmake_host_system_information(RESULT is_64_bit QUERY IS_64BIT)
if(is_64_bit)
if("${CMAKE_HOST_SYSTEM_PROCESSOR}" STREQUAL "ARM64")