From 9b06c22648e992dc135b648ab4039b1b24861be9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20St=C3=BCrmer?= Date: Thu, 1 Dec 2016 12:52:57 +0100 Subject: VS: Add flag tables for C# Add these (currently unused) tables in preparation for `.csproj` generation support. Populate the tables for every version with a set of initial values that work well for me with VS 12 and VS 14. Later we may need to generate them more thoroughly from MSBuild `.xml` files. --- Source/cmGlobalVisualStudio10Generator.cxx | 11 +++ Source/cmGlobalVisualStudio10Generator.h | 2 + Source/cmGlobalVisualStudio11Generator.cxx | 2 + Source/cmGlobalVisualStudio12Generator.cxx | 2 + Source/cmGlobalVisualStudio14Generator.cxx | 2 + Source/cmGlobalVisualStudio15Generator.cxx | 2 + Source/cmVS10CSharpFlagTable.h | 120 +++++++++++++++++++++++++++++ Source/cmVS11CSharpFlagTable.h | 120 +++++++++++++++++++++++++++++ Source/cmVS12CSharpFlagTable.h | 120 +++++++++++++++++++++++++++++ Source/cmVS140CSharpFlagTable.h | 120 +++++++++++++++++++++++++++++ Source/cmVS141CSharpFlagTable.h | 120 +++++++++++++++++++++++++++++ Source/cmVisualStudio10ToolsetOptions.cxx | 25 ++++++ Source/cmVisualStudio10ToolsetOptions.h | 2 + 13 files changed, 648 insertions(+) create mode 100644 Source/cmVS10CSharpFlagTable.h create mode 100644 Source/cmVS11CSharpFlagTable.h create mode 100644 Source/cmVS12CSharpFlagTable.h create mode 100644 Source/cmVS140CSharpFlagTable.h create mode 100644 Source/cmVS141CSharpFlagTable.h diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index a1af6ff..d992aef 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -9,6 +9,7 @@ #include "cmMakefile.h" #include "cmSourceFile.h" #include "cmVS10CLFlagTable.h" +#include "cmVS10CSharpFlagTable.h" #include "cmVS10LibFlagTable.h" #include "cmVS10LinkFlagTable.h" #include "cmVS10MASMFlagTable.h" @@ -99,6 +100,7 @@ cmGlobalVisualStudio10Generator::cmGlobalVisualStudio10Generator( this->MSBuildCommandInitialized = false; this->DefaultPlatformToolset = "v100"; this->DefaultClFlagTable = cmVS10CLFlagTable; + this->DefaultCSharpFlagTable = cmVS10CSharpFlagTable; this->DefaultLibFlagTable = cmVS10LibFlagTable; this->DefaultLinkFlagTable = cmVS10LinkFlagTable; this->DefaultMasmFlagTable = cmVS10MASMFlagTable; @@ -626,6 +628,15 @@ cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetClFlagTable() const return (table != CM_NULLPTR) ? table : this->DefaultClFlagTable; } +cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetCSharpFlagTable() + const +{ + cmIDEFlagTable const* table = this->ToolsetOptions.GetCSharpFlagTable( + this->GetPlatformName(), this->GetPlatformToolsetString()); + + return (table != CM_NULLPTR) ? table : this->DefaultCSharpFlagTable; +} + cmIDEFlagTable const* cmGlobalVisualStudio10Generator::GetRcFlagTable() const { cmIDEFlagTable const* table = this->ToolsetOptions.GetRcFlagTable( diff --git a/Source/cmGlobalVisualStudio10Generator.h b/Source/cmGlobalVisualStudio10Generator.h index 4175104..5bfaf38 100644 --- a/Source/cmGlobalVisualStudio10Generator.h +++ b/Source/cmGlobalVisualStudio10Generator.h @@ -91,6 +91,7 @@ public: static std::string GetInstalledNsightTegraVersion(); cmIDEFlagTable const* GetClFlagTable() const; + cmIDEFlagTable const* GetCSharpFlagTable() const; cmIDEFlagTable const* GetRcFlagTable() const; cmIDEFlagTable const* GetLibFlagTable() const; cmIDEFlagTable const* GetLinkFlagTable() const; @@ -120,6 +121,7 @@ protected: std::string SystemVersion; std::string NsightTegraVersion; cmIDEFlagTable const* DefaultClFlagTable; + cmIDEFlagTable const* DefaultCSharpFlagTable; cmIDEFlagTable const* DefaultLibFlagTable; cmIDEFlagTable const* DefaultLinkFlagTable; cmIDEFlagTable const* DefaultMasmFlagTable; diff --git a/Source/cmGlobalVisualStudio11Generator.cxx b/Source/cmGlobalVisualStudio11Generator.cxx index 049e86e..d37d4b0 100644 --- a/Source/cmGlobalVisualStudio11Generator.cxx +++ b/Source/cmGlobalVisualStudio11Generator.cxx @@ -7,6 +7,7 @@ #include "cmLocalVisualStudio10Generator.h" #include "cmMakefile.h" #include "cmVS11CLFlagTable.h" +#include "cmVS11CSharpFlagTable.h" #include "cmVS11LibFlagTable.h" #include "cmVS11LinkFlagTable.h" #include "cmVS11MASMFlagTable.h" @@ -108,6 +109,7 @@ cmGlobalVisualStudio11Generator::cmGlobalVisualStudio11Generator( vc11Express, cmSystemTools::KeyWOW64_32); this->DefaultPlatformToolset = "v110"; this->DefaultClFlagTable = cmVS11CLFlagTable; + this->DefaultCSharpFlagTable = cmVS11CSharpFlagTable; this->DefaultLibFlagTable = cmVS11LibFlagTable; this->DefaultLinkFlagTable = cmVS11LinkFlagTable; this->DefaultMasmFlagTable = cmVS11MASMFlagTable; diff --git a/Source/cmGlobalVisualStudio12Generator.cxx b/Source/cmGlobalVisualStudio12Generator.cxx index 0a48ba6..2656dcc 100644 --- a/Source/cmGlobalVisualStudio12Generator.cxx +++ b/Source/cmGlobalVisualStudio12Generator.cxx @@ -7,6 +7,7 @@ #include "cmLocalVisualStudio10Generator.h" #include "cmMakefile.h" #include "cmVS12CLFlagTable.h" +#include "cmVS12CSharpFlagTable.h" #include "cmVS12LibFlagTable.h" #include "cmVS12LinkFlagTable.h" #include "cmVS12MASMFlagTable.h" @@ -90,6 +91,7 @@ cmGlobalVisualStudio12Generator::cmGlobalVisualStudio12Generator( vc12Express, cmSystemTools::KeyWOW64_32); this->DefaultPlatformToolset = "v120"; this->DefaultClFlagTable = cmVS12CLFlagTable; + this->DefaultCSharpFlagTable = cmVS12CSharpFlagTable; this->DefaultLibFlagTable = cmVS12LibFlagTable; this->DefaultLinkFlagTable = cmVS12LinkFlagTable; this->DefaultMasmFlagTable = cmVS12MASMFlagTable; diff --git a/Source/cmGlobalVisualStudio14Generator.cxx b/Source/cmGlobalVisualStudio14Generator.cxx index b4cb823..81c305c 100644 --- a/Source/cmGlobalVisualStudio14Generator.cxx +++ b/Source/cmGlobalVisualStudio14Generator.cxx @@ -7,6 +7,7 @@ #include "cmLocalVisualStudio10Generator.h" #include "cmMakefile.h" #include "cmVS140CLFlagTable.h" +#include "cmVS140CSharpFlagTable.h" #include "cmVS14LibFlagTable.h" #include "cmVS14LinkFlagTable.h" #include "cmVS14MASMFlagTable.h" @@ -90,6 +91,7 @@ cmGlobalVisualStudio14Generator::cmGlobalVisualStudio14Generator( vc14Express, cmSystemTools::KeyWOW64_32); this->DefaultPlatformToolset = "v140"; this->DefaultClFlagTable = cmVS140CLFlagTable; + this->DefaultCSharpFlagTable = cmVS140CSharpFlagTable; this->DefaultLibFlagTable = cmVS14LibFlagTable; this->DefaultLinkFlagTable = cmVS14LinkFlagTable; this->DefaultMasmFlagTable = cmVS14MASMFlagTable; diff --git a/Source/cmGlobalVisualStudio15Generator.cxx b/Source/cmGlobalVisualStudio15Generator.cxx index 091a03e..20d30bc 100644 --- a/Source/cmGlobalVisualStudio15Generator.cxx +++ b/Source/cmGlobalVisualStudio15Generator.cxx @@ -7,6 +7,7 @@ #include "cmLocalVisualStudio10Generator.h" #include "cmMakefile.h" #include "cmVS141CLFlagTable.h" +#include "cmVS141CSharpFlagTable.h" static const char vs15generatorName[] = "Visual Studio 15 2017"; @@ -86,6 +87,7 @@ cmGlobalVisualStudio15Generator::cmGlobalVisualStudio15Generator( vc15Express, cmSystemTools::KeyWOW64_32); this->DefaultPlatformToolset = "v141"; this->DefaultClFlagTable = cmVS141CLFlagTable; + this->DefaultCSharpFlagTable = cmVS141CSharpFlagTable; this->Version = VS15; } diff --git a/Source/cmVS10CSharpFlagTable.h b/Source/cmVS10CSharpFlagTable.h new file mode 100644 index 0000000..493ec2b --- /dev/null +++ b/Source/cmVS10CSharpFlagTable.h @@ -0,0 +1,120 @@ +static cmVS7FlagTable cmVS10CSharpFlagTable[] = { + { "ProjectName", "out:", "", "", cmIDEFlagTable::UserValueRequired }, + + { "OutputType", "target:exe", "", "Exe", 0 }, + { "OutputType", "target:winexe", "", "Winexe", 0 }, + { "OutputType", "target:library", "", "Library", 0 }, + { "OutputType", "target:module", "", "Module", 0 }, + + { "DocumentationFile", "doc", "", "", cmIDEFlagTable::UserValueRequired }, + + { "Platform", "platform:x86", "", "x86", 0 }, + { "Platform", "platform:Itanium", "", "Itanium", 0 }, + { "Platform", "platform:x64", "", "x64", 0 }, + { "Platform", "platform:arm", "", "arm", 0 }, + { "Platform", "platform:anycpu32bitpreferred", "", "anycpu32bitpreferred", + 0 }, + { "Platform", "platform:anycpu", "", "anycpu", 0 }, + + { "References", "reference:", "mit alias", "", 0 }, + { "References", "reference:", "dateiliste", "", 0 }, + { "AddModules", "addmodule:", "", "", cmIDEFlagTable::SemicolonAppendable }, + { "", "link", "", "", 0 }, + + { "Win32Resource", "win32res", "", "", cmIDEFlagTable::UserValueRequired }, + { "ApplicationIcon", "win32icon", "", "", + cmIDEFlagTable::UserValueRequired }, + + { "Win32Manifest", "win32manifest:", "", "true", 0 }, + + { "NoWin32Manifest", "nowin32manifest", "", "true", 0 }, + + { "DefineDebug", "debug", "", "true", cmIDEFlagTable::Continue }, + + { "DebugSymbols", "debug", "", "true", 0 }, + { "DebugSymbols", "debug-", "", "false", 0 }, + { "DebugSymbols", "debug+", "", "true", 0 }, + + { "DebugType", "debug:none", "", "none", 0 }, + { "DebugType", "debug:full", "", "full", 0 }, + { "DebugType", "debug:pdbonly", "", "pdbonly", 0 }, + + { "Optimize", "optimize", "", "true", 0 }, + { "Optimize", "optimize-", "", "false", 0 }, + { "Optimize", "optimize+", "", "true", 0 }, + + { "TreatWarningsAsErrors", "warnaserror", "", "true", 0 }, + { "TreatWarningsAsErrors", "warnaserror-", "", "false", 0 }, + { "TreatWarningsAsErrors", "warnaserror+", "", "true", 0 }, + + { "WarningsAsErrors", "warnaserror", "", "", 0 }, + { "WarningsAsErrors", "warnaserror-", "", "", 0 }, + { "WarningsAsErrors", "warnaserror+", "", "", 0 }, + + { "WarningLevel", "warn:0", "", "0", 0 }, + { "WarningLevel", "warn:1", "", "1", 0 }, + { "WarningLevel", "warn:2", "", "2", 0 }, + { "WarningLevel", "warn:3", "", "3", 0 }, + { "WarningLevel", "warn:4", "", "4", 0 }, + { "DisabledWarnings", "nowarn", "", "", 0 }, + + { "CheckForOverflowUnderflow", "checked", "", "true", 0 }, + { "CheckForOverflowUnderflow", "checked-", "", "false", 0 }, + { "CheckForOverflowUnderflow", "checked+", "", "true", 0 }, + + { "AllowUnsafeBlocks", "unsafe", "", "true", 0 }, + { "AllowUnsafeBlocks", "unsafe-", "", "false", 0 }, + { "AllowUnsafeBlocks", "unsafe+", "", "true", 0 }, + + { "DefineConstants", "define:", "", "", + cmIDEFlagTable::SemicolonAppendable | cmIDEFlagTable::UserValue }, + + { "LangVersion", "langversion:ISO-1", "", "ISO-1", 0 }, + { "LangVersion", "langversion:ISO-2", "", "ISO-2", 0 }, + { "LangVersion", "langversion:3", "", "3", 0 }, + { "LangVersion", "langversion:4", "", "4", 0 }, + { "LangVersion", "langversion:5", "", "5", 0 }, + { "LangVersion", "langversion:6", "", "6", 0 }, + { "LangVersion", "langversion:default", "", "default", 0 }, + + { "DelaySign", "delaysign", "", "true", 0 }, + { "DelaySign", "delaysign-", "", "false", 0 }, + { "DelaySign", "delaysign+", "", "true", 0 }, + + { "AssemblyOriginatorKeyFile", "keyfile", "", "", 0 }, + + { "KeyContainerName", "keycontainer", "", "", 0 }, + + { "NoLogo", "nologo", "", "", 0 }, + + { "NoConfig", "noconfig", "", "true", 0 }, + + { "BaseAddress", "baseaddress:", "", "", 0 }, + + { "CodePage", "codepage", "", "", 0 }, + + { "Utf8Output", "utf8output", "", "", 0 }, + + { "MainEntryPoint", "main:", "", "", 0 }, + + { "GenerateFullPaths", "fullpaths", "", "true", 0 }, + + { "FileAlignment", "filealign", "", "", 0 }, + + { "PdbFile", "pdb:", "", "", 0 }, + + { "NoStandardLib", "nostdlib", "", "true", 0 }, + { "NoStandardLib", "nostdlib-", "", "false", 0 }, + { "NoStandardLib", "nostdlib+", "", "true", 0 }, + + { "SubsystemVersion", "subsystemversion", "", "", 0 }, + + { "AdditionalLibPaths", "lib:", "", "", 0 }, + + { "ErrorReport", "errorreport:none", "Do Not Send Report", "none", 0 }, + { "ErrorReport", "errorreport:prompt", "Prompt Immediately", "prompt", 0 }, + { "ErrorReport", "errorreport:queue", "Queue For Next Login", "queue", 0 }, + { "ErrorReport", "errorreport:send", "Send Automatically", "send", 0 }, + + { 0, 0, 0, 0, 0 }, +}; diff --git a/Source/cmVS11CSharpFlagTable.h b/Source/cmVS11CSharpFlagTable.h new file mode 100644 index 0000000..71870b6 --- /dev/null +++ b/Source/cmVS11CSharpFlagTable.h @@ -0,0 +1,120 @@ +static cmVS7FlagTable cmVS11CSharpFlagTable[] = { + { "ProjectName", "out:", "", "", cmIDEFlagTable::UserValueRequired }, + + { "OutputType", "target:exe", "", "Exe", 0 }, + { "OutputType", "target:winexe", "", "Winexe", 0 }, + { "OutputType", "target:library", "", "Library", 0 }, + { "OutputType", "target:module", "", "Module", 0 }, + + { "DocumentationFile", "doc", "", "", cmIDEFlagTable::UserValueRequired }, + + { "Platform", "platform:x86", "", "x86", 0 }, + { "Platform", "platform:Itanium", "", "Itanium", 0 }, + { "Platform", "platform:x64", "", "x64", 0 }, + { "Platform", "platform:arm", "", "arm", 0 }, + { "Platform", "platform:anycpu32bitpreferred", "", "anycpu32bitpreferred", + 0 }, + { "Platform", "platform:anycpu", "", "anycpu", 0 }, + + { "References", "reference:", "mit alias", "", 0 }, + { "References", "reference:", "dateiliste", "", 0 }, + { "AddModules", "addmodule:", "", "", cmIDEFlagTable::SemicolonAppendable }, + { "", "link", "", "", 0 }, + + { "Win32Resource", "win32res", "", "", cmIDEFlagTable::UserValueRequired }, + { "ApplicationIcon", "win32icon", "", "", + cmIDEFlagTable::UserValueRequired }, + + { "Win32Manifest", "win32manifest:", "", "true", 0 }, + + { "NoWin32Manifest", "nowin32manifest", "", "true", 0 }, + + { "DefineDebug", "debug", "", "true", cmIDEFlagTable::Continue }, + + { "DebugSymbols", "debug", "", "true", 0 }, + { "DebugSymbols", "debug-", "", "false", 0 }, + { "DebugSymbols", "debug+", "", "true", 0 }, + + { "DebugType", "debug:none", "", "none", 0 }, + { "DebugType", "debug:full", "", "full", 0 }, + { "DebugType", "debug:pdbonly", "", "pdbonly", 0 }, + + { "Optimize", "optimize", "", "true", 0 }, + { "Optimize", "optimize-", "", "false", 0 }, + { "Optimize", "optimize+", "", "true", 0 }, + + { "TreatWarningsAsErrors", "warnaserror", "", "true", 0 }, + { "TreatWarningsAsErrors", "warnaserror-", "", "false", 0 }, + { "TreatWarningsAsErrors", "warnaserror+", "", "true", 0 }, + + { "WarningsAsErrors", "warnaserror", "", "", 0 }, + { "WarningsAsErrors", "warnaserror-", "", "", 0 }, + { "WarningsAsErrors", "warnaserror+", "", "", 0 }, + + { "WarningLevel", "warn:0", "", "0", 0 }, + { "WarningLevel", "warn:1", "", "1", 0 }, + { "WarningLevel", "warn:2", "", "2", 0 }, + { "WarningLevel", "warn:3", "", "3", 0 }, + { "WarningLevel", "warn:4", "", "4", 0 }, + { "DisabledWarnings", "nowarn", "", "", 0 }, + + { "CheckForOverflowUnderflow", "checked", "", "true", 0 }, + { "CheckForOverflowUnderflow", "checked-", "", "false", 0 }, + { "CheckForOverflowUnderflow", "checked+", "", "true", 0 }, + + { "AllowUnsafeBlocks", "unsafe", "", "true", 0 }, + { "AllowUnsafeBlocks", "unsafe-", "", "false", 0 }, + { "AllowUnsafeBlocks", "unsafe+", "", "true", 0 }, + + { "DefineConstants", "define:", "", "", + cmIDEFlagTable::SemicolonAppendable | cmIDEFlagTable::UserValue }, + + { "LangVersion", "langversion:ISO-1", "", "ISO-1", 0 }, + { "LangVersion", "langversion:ISO-2", "", "ISO-2", 0 }, + { "LangVersion", "langversion:3", "", "3", 0 }, + { "LangVersion", "langversion:4", "", "4", 0 }, + { "LangVersion", "langversion:5", "", "5", 0 }, + { "LangVersion", "langversion:6", "", "6", 0 }, + { "LangVersion", "langversion:default", "", "default", 0 }, + + { "DelaySign", "delaysign", "", "true", 0 }, + { "DelaySign", "delaysign-", "", "false", 0 }, + { "DelaySign", "delaysign+", "", "true", 0 }, + + { "AssemblyOriginatorKeyFile", "keyfile", "", "", 0 }, + + { "KeyContainerName", "keycontainer", "", "", 0 }, + + { "NoLogo", "nologo", "", "", 0 }, + + { "NoConfig", "noconfig", "", "true", 0 }, + + { "BaseAddress", "baseaddress:", "", "", 0 }, + + { "CodePage", "codepage", "", "", 0 }, + + { "Utf8Output", "utf8output", "", "", 0 }, + + { "MainEntryPoint", "main:", "", "", 0 }, + + { "GenerateFullPaths", "fullpaths", "", "true", 0 }, + + { "FileAlignment", "filealign", "", "", 0 }, + + { "PdbFile", "pdb:", "", "", 0 }, + + { "NoStandardLib", "nostdlib", "", "true", 0 }, + { "NoStandardLib", "nostdlib-", "", "false", 0 }, + { "NoStandardLib", "nostdlib+", "", "true", 0 }, + + { "SubsystemVersion", "subsystemversion", "", "", 0 }, + + { "AdditionalLibPaths", "lib:", "", "", 0 }, + + { "ErrorReport", "errorreport:none", "Do Not Send Report", "none", 0 }, + { "ErrorReport", "errorreport:prompt", "Prompt Immediately", "prompt", 0 }, + { "ErrorReport", "errorreport:queue", "Queue For Next Login", "queue", 0 }, + { "ErrorReport", "errorreport:send", "Send Automatically", "send", 0 }, + + { 0, 0, 0, 0, 0 }, +}; diff --git a/Source/cmVS12CSharpFlagTable.h b/Source/cmVS12CSharpFlagTable.h new file mode 100644 index 0000000..f98b184 --- /dev/null +++ b/Source/cmVS12CSharpFlagTable.h @@ -0,0 +1,120 @@ +static cmVS7FlagTable cmVS12CSharpFlagTable[] = { + { "ProjectName", "out:", "", "", cmIDEFlagTable::UserValueRequired }, + + { "OutputType", "target:exe", "", "Exe", 0 }, + { "OutputType", "target:winexe", "", "Winexe", 0 }, + { "OutputType", "target:library", "", "Library", 0 }, + { "OutputType", "target:module", "", "Module", 0 }, + + { "DocumentationFile", "doc", "", "", cmIDEFlagTable::UserValueRequired }, + + { "Platform", "platform:x86", "", "x86", 0 }, + { "Platform", "platform:Itanium", "", "Itanium", 0 }, + { "Platform", "platform:x64", "", "x64", 0 }, + { "Platform", "platform:arm", "", "arm", 0 }, + { "Platform", "platform:anycpu32bitpreferred", "", "anycpu32bitpreferred", + 0 }, + { "Platform", "platform:anycpu", "", "anycpu", 0 }, + + { "References", "reference:", "mit alias", "", 0 }, + { "References", "reference:", "dateiliste", "", 0 }, + { "AddModules", "addmodule:", "", "", cmIDEFlagTable::SemicolonAppendable }, + { "", "link", "", "", 0 }, + + { "Win32Resource", "win32res", "", "", cmIDEFlagTable::UserValueRequired }, + { "ApplicationIcon", "win32icon", "", "", + cmIDEFlagTable::UserValueRequired }, + + { "Win32Manifest", "win32manifest:", "", "true", 0 }, + + { "NoWin32Manifest", "nowin32manifest", "", "true", 0 }, + + { "DefineDebug", "debug", "", "true", cmIDEFlagTable::Continue }, + + { "DebugSymbols", "debug", "", "true", 0 }, + { "DebugSymbols", "debug-", "", "false", 0 }, + { "DebugSymbols", "debug+", "", "true", 0 }, + + { "DebugType", "debug:none", "", "none", 0 }, + { "DebugType", "debug:full", "", "full", 0 }, + { "DebugType", "debug:pdbonly", "", "pdbonly", 0 }, + + { "Optimize", "optimize", "", "true", 0 }, + { "Optimize", "optimize-", "", "false", 0 }, + { "Optimize", "optimize+", "", "true", 0 }, + + { "TreatWarningsAsErrors", "warnaserror", "", "true", 0 }, + { "TreatWarningsAsErrors", "warnaserror-", "", "false", 0 }, + { "TreatWarningsAsErrors", "warnaserror+", "", "true", 0 }, + + { "WarningsAsErrors", "warnaserror", "", "", 0 }, + { "WarningsAsErrors", "warnaserror-", "", "", 0 }, + { "WarningsAsErrors", "warnaserror+", "", "", 0 }, + + { "WarningLevel", "warn:0", "", "0", 0 }, + { "WarningLevel", "warn:1", "", "1", 0 }, + { "WarningLevel", "warn:2", "", "2", 0 }, + { "WarningLevel", "warn:3", "", "3", 0 }, + { "WarningLevel", "warn:4", "", "4", 0 }, + { "DisabledWarnings", "nowarn", "", "", 0 }, + + { "CheckForOverflowUnderflow", "checked", "", "true", 0 }, + { "CheckForOverflowUnderflow", "checked-", "", "false", 0 }, + { "CheckForOverflowUnderflow", "checked+", "", "true", 0 }, + + { "AllowUnsafeBlocks", "unsafe", "", "true", 0 }, + { "AllowUnsafeBlocks", "unsafe-", "", "false", 0 }, + { "AllowUnsafeBlocks", "unsafe+", "", "true", 0 }, + + { "DefineConstants", "define:", "", "", + cmIDEFlagTable::SemicolonAppendable | cmIDEFlagTable::UserValue }, + + { "LangVersion", "langversion:ISO-1", "", "ISO-1", 0 }, + { "LangVersion", "langversion:ISO-2", "", "ISO-2", 0 }, + { "LangVersion", "langversion:3", "", "3", 0 }, + { "LangVersion", "langversion:4", "", "4", 0 }, + { "LangVersion", "langversion:5", "", "5", 0 }, + { "LangVersion", "langversion:6", "", "6", 0 }, + { "LangVersion", "langversion:default", "", "default", 0 }, + + { "DelaySign", "delaysign", "", "true", 0 }, + { "DelaySign", "delaysign-", "", "false", 0 }, + { "DelaySign", "delaysign+", "", "true", 0 }, + + { "AssemblyOriginatorKeyFile", "keyfile", "", "", 0 }, + + { "KeyContainerName", "keycontainer", "", "", 0 }, + + { "NoLogo", "nologo", "", "", 0 }, + + { "NoConfig", "noconfig", "", "true", 0 }, + + { "BaseAddress", "baseaddress:", "", "", 0 }, + + { "CodePage", "codepage", "", "", 0 }, + + { "Utf8Output", "utf8output", "", "", 0 }, + + { "MainEntryPoint", "main:", "", "", 0 }, + + { "GenerateFullPaths", "fullpaths", "", "true", 0 }, + + { "FileAlignment", "filealign", "", "", 0 }, + + { "PdbFile", "pdb:", "", "", 0 }, + + { "NoStandardLib", "nostdlib", "", "true", 0 }, + { "NoStandardLib", "nostdlib-", "", "false", 0 }, + { "NoStandardLib", "nostdlib+", "", "true", 0 }, + + { "SubsystemVersion", "subsystemversion", "", "", 0 }, + + { "AdditionalLibPaths", "lib:", "", "", 0 }, + + { "ErrorReport", "errorreport:none", "Do Not Send Report", "none", 0 }, + { "ErrorReport", "errorreport:prompt", "Prompt Immediately", "prompt", 0 }, + { "ErrorReport", "errorreport:queue", "Queue For Next Login", "queue", 0 }, + { "ErrorReport", "errorreport:send", "Send Automatically", "send", 0 }, + + { 0, 0, 0, 0, 0 }, +}; diff --git a/Source/cmVS140CSharpFlagTable.h b/Source/cmVS140CSharpFlagTable.h new file mode 100644 index 0000000..256c35f --- /dev/null +++ b/Source/cmVS140CSharpFlagTable.h @@ -0,0 +1,120 @@ +static cmVS7FlagTable cmVS140CSharpFlagTable[] = { + { "ProjectName", "out:", "", "", cmIDEFlagTable::UserValueRequired }, + + { "OutputType", "target:exe", "", "Exe", 0 }, + { "OutputType", "target:winexe", "", "Winexe", 0 }, + { "OutputType", "target:library", "", "Library", 0 }, + { "OutputType", "target:module", "", "Module", 0 }, + + { "DocumentationFile", "doc", "", "", cmIDEFlagTable::UserValueRequired }, + + { "Platform", "platform:x86", "", "x86", 0 }, + { "Platform", "platform:Itanium", "", "Itanium", 0 }, + { "Platform", "platform:x64", "", "x64", 0 }, + { "Platform", "platform:arm", "", "arm", 0 }, + { "Platform", "platform:anycpu32bitpreferred", "", "anycpu32bitpreferred", + 0 }, + { "Platform", "platform:anycpu", "", "anycpu", 0 }, + + { "References", "reference:", "mit alias", "", 0 }, + { "References", "reference:", "dateiliste", "", 0 }, + { "AddModules", "addmodule:", "", "", cmIDEFlagTable::SemicolonAppendable }, + { "", "link", "", "", 0 }, + + { "Win32Resource", "win32res", "", "", cmIDEFlagTable::UserValueRequired }, + { "ApplicationIcon", "win32icon", "", "", + cmIDEFlagTable::UserValueRequired }, + + { "Win32Manifest", "win32manifest:", "", "true", 0 }, + + { "NoWin32Manifest", "nowin32manifest", "", "true", 0 }, + + { "DefineDebug", "debug", "", "true", cmIDEFlagTable::Continue }, + + { "DebugSymbols", "debug", "", "true", 0 }, + { "DebugSymbols", "debug-", "", "false", 0 }, + { "DebugSymbols", "debug+", "", "true", 0 }, + + { "DebugType", "debug:none", "", "none", 0 }, + { "DebugType", "debug:full", "", "full", 0 }, + { "DebugType", "debug:pdbonly", "", "pdbonly", 0 }, + + { "Optimize", "optimize", "", "true", 0 }, + { "Optimize", "optimize-", "", "false", 0 }, + { "Optimize", "optimize+", "", "true", 0 }, + + { "TreatWarningsAsErrors", "warnaserror", "", "true", 0 }, + { "TreatWarningsAsErrors", "warnaserror-", "", "false", 0 }, + { "TreatWarningsAsErrors", "warnaserror+", "", "true", 0 }, + + { "WarningsAsErrors", "warnaserror", "", "", 0 }, + { "WarningsAsErrors", "warnaserror-", "", "", 0 }, + { "WarningsAsErrors", "warnaserror+", "", "", 0 }, + + { "WarningLevel", "warn:0", "", "0", 0 }, + { "WarningLevel", "warn:1", "", "1", 0 }, + { "WarningLevel", "warn:2", "", "2", 0 }, + { "WarningLevel", "warn:3", "", "3", 0 }, + { "WarningLevel", "warn:4", "", "4", 0 }, + { "DisabledWarnings", "nowarn", "", "", 0 }, + + { "CheckForOverflowUnderflow", "checked", "", "true", 0 }, + { "CheckForOverflowUnderflow", "checked-", "", "false", 0 }, + { "CheckForOverflowUnderflow", "checked+", "", "true", 0 }, + + { "AllowUnsafeBlocks", "unsafe", "", "true", 0 }, + { "AllowUnsafeBlocks", "unsafe-", "", "false", 0 }, + { "AllowUnsafeBlocks", "unsafe+", "", "true", 0 }, + + { "DefineConstants", "define:", "", "", + cmIDEFlagTable::SemicolonAppendable | cmIDEFlagTable::UserValue }, + + { "LangVersion", "langversion:ISO-1", "", "ISO-1", 0 }, + { "LangVersion", "langversion:ISO-2", "", "ISO-2", 0 }, + { "LangVersion", "langversion:3", "", "3", 0 }, + { "LangVersion", "langversion:4", "", "4", 0 }, + { "LangVersion", "langversion:5", "", "5", 0 }, + { "LangVersion", "langversion:6", "", "6", 0 }, + { "LangVersion", "langversion:default", "", "default", 0 }, + + { "DelaySign", "delaysign", "", "true", 0 }, + { "DelaySign", "delaysign-", "", "false", 0 }, + { "DelaySign", "delaysign+", "", "true", 0 }, + + { "AssemblyOriginatorKeyFile", "keyfile", "", "", 0 }, + + { "KeyContainerName", "keycontainer", "", "", 0 }, + + { "NoLogo", "nologo", "", "", 0 }, + + { "NoConfig", "noconfig", "", "true", 0 }, + + { "BaseAddress", "baseaddress:", "", "", 0 }, + + { "CodePage", "codepage", "", "", 0 }, + + { "Utf8Output", "utf8output", "", "", 0 }, + + { "MainEntryPoint", "main:", "", "", 0 }, + + { "GenerateFullPaths", "fullpaths", "", "true", 0 }, + + { "FileAlignment", "filealign", "", "", 0 }, + + { "PdbFile", "pdb:", "", "", 0 }, + + { "NoStandardLib", "nostdlib", "", "true", 0 }, + { "NoStandardLib", "nostdlib-", "", "false", 0 }, + { "NoStandardLib", "nostdlib+", "", "true", 0 }, + + { "SubsystemVersion", "subsystemversion", "", "", 0 }, + + { "AdditionalLibPaths", "lib:", "", "", 0 }, + + { "ErrorReport", "errorreport:none", "Do Not Send Report", "none", 0 }, + { "ErrorReport", "errorreport:prompt", "Prompt Immediately", "prompt", 0 }, + { "ErrorReport", "errorreport:queue", "Queue For Next Login", "queue", 0 }, + { "ErrorReport", "errorreport:send", "Send Automatically", "send", 0 }, + + { 0, 0, 0, 0, 0 }, +}; diff --git a/Source/cmVS141CSharpFlagTable.h b/Source/cmVS141CSharpFlagTable.h new file mode 100644 index 0000000..8508581 --- /dev/null +++ b/Source/cmVS141CSharpFlagTable.h @@ -0,0 +1,120 @@ +static cmVS7FlagTable cmVS141CSharpFlagTable[] = { + { "ProjectName", "out:", "", "", cmIDEFlagTable::UserValueRequired }, + + { "OutputType", "target:exe", "", "Exe", 0 }, + { "OutputType", "target:winexe", "", "Winexe", 0 }, + { "OutputType", "target:library", "", "Library", 0 }, + { "OutputType", "target:module", "", "Module", 0 }, + + { "DocumentationFile", "doc", "", "", cmIDEFlagTable::UserValueRequired }, + + { "Platform", "platform:x86", "", "x86", 0 }, + { "Platform", "platform:Itanium", "", "Itanium", 0 }, + { "Platform", "platform:x64", "", "x64", 0 }, + { "Platform", "platform:arm", "", "arm", 0 }, + { "Platform", "platform:anycpu32bitpreferred", "", "anycpu32bitpreferred", + 0 }, + { "Platform", "platform:anycpu", "", "anycpu", 0 }, + + { "References", "reference:", "mit alias", "", 0 }, + { "References", "reference:", "dateiliste", "", 0 }, + { "AddModules", "addmodule:", "", "", cmIDEFlagTable::SemicolonAppendable }, + { "", "link", "", "", 0 }, + + { "Win32Resource", "win32res", "", "", cmIDEFlagTable::UserValueRequired }, + { "ApplicationIcon", "win32icon", "", "", + cmIDEFlagTable::UserValueRequired }, + + { "Win32Manifest", "win32manifest:", "", "true", 0 }, + + { "NoWin32Manifest", "nowin32manifest", "", "true", 0 }, + + { "DefineDebug", "debug", "", "true", cmIDEFlagTable::Continue }, + + { "DebugSymbols", "debug", "", "true", 0 }, + { "DebugSymbols", "debug-", "", "false", 0 }, + { "DebugSymbols", "debug+", "", "true", 0 }, + + { "DebugType", "debug:none", "", "none", 0 }, + { "DebugType", "debug:full", "", "full", 0 }, + { "DebugType", "debug:pdbonly", "", "pdbonly", 0 }, + + { "Optimize", "optimize", "", "true", 0 }, + { "Optimize", "optimize-", "", "false", 0 }, + { "Optimize", "optimize+", "", "true", 0 }, + + { "TreatWarningsAsErrors", "warnaserror", "", "true", 0 }, + { "TreatWarningsAsErrors", "warnaserror-", "", "false", 0 }, + { "TreatWarningsAsErrors", "warnaserror+", "", "true", 0 }, + + { "WarningsAsErrors", "warnaserror", "", "", 0 }, + { "WarningsAsErrors", "warnaserror-", "", "", 0 }, + { "WarningsAsErrors", "warnaserror+", "", "", 0 }, + + { "WarningLevel", "warn:0", "", "0", 0 }, + { "WarningLevel", "warn:1", "", "1", 0 }, + { "WarningLevel", "warn:2", "", "2", 0 }, + { "WarningLevel", "warn:3", "", "3", 0 }, + { "WarningLevel", "warn:4", "", "4", 0 }, + { "DisabledWarnings", "nowarn", "", "", 0 }, + + { "CheckForOverflowUnderflow", "checked", "", "true", 0 }, + { "CheckForOverflowUnderflow", "checked-", "", "false", 0 }, + { "CheckForOverflowUnderflow", "checked+", "", "true", 0 }, + + { "AllowUnsafeBlocks", "unsafe", "", "true", 0 }, + { "AllowUnsafeBlocks", "unsafe-", "", "false", 0 }, + { "AllowUnsafeBlocks", "unsafe+", "", "true", 0 }, + + { "DefineConstants", "define:", "", "", + cmIDEFlagTable::SemicolonAppendable | cmIDEFlagTable::UserValue }, + + { "LangVersion", "langversion:ISO-1", "", "ISO-1", 0 }, + { "LangVersion", "langversion:ISO-2", "", "ISO-2", 0 }, + { "LangVersion", "langversion:3", "", "3", 0 }, + { "LangVersion", "langversion:4", "", "4", 0 }, + { "LangVersion", "langversion:5", "", "5", 0 }, + { "LangVersion", "langversion:6", "", "6", 0 }, + { "LangVersion", "langversion:default", "", "default", 0 }, + + { "DelaySign", "delaysign", "", "true", 0 }, + { "DelaySign", "delaysign-", "", "false", 0 }, + { "DelaySign", "delaysign+", "", "true", 0 }, + + { "AssemblyOriginatorKeyFile", "keyfile", "", "", 0 }, + + { "KeyContainerName", "keycontainer", "", "", 0 }, + + { "NoLogo", "nologo", "", "", 0 }, + + { "NoConfig", "noconfig", "", "true", 0 }, + + { "BaseAddress", "baseaddress:", "", "", 0 }, + + { "CodePage", "codepage", "", "", 0 }, + + { "Utf8Output", "utf8output", "", "", 0 }, + + { "MainEntryPoint", "main:", "", "", 0 }, + + { "GenerateFullPaths", "fullpaths", "", "true", 0 }, + + { "FileAlignment", "filealign", "", "", 0 }, + + { "PdbFile", "pdb:", "", "", 0 }, + + { "NoStandardLib", "nostdlib", "", "true", 0 }, + { "NoStandardLib", "nostdlib-", "", "false", 0 }, + { "NoStandardLib", "nostdlib+", "", "true", 0 }, + + { "SubsystemVersion", "subsystemversion", "", "", 0 }, + + { "AdditionalLibPaths", "lib:", "", "", 0 }, + + { "ErrorReport", "errorreport:none", "Do Not Send Report", "none", 0 }, + { "ErrorReport", "errorreport:prompt", "Prompt Immediately", "prompt", 0 }, + { "ErrorReport", "errorreport:queue", "Queue For Next Login", "queue", 0 }, + { "ErrorReport", "errorreport:send", "Send Automatically", "send", 0 }, + + { 0, 0, 0, 0, 0 }, +}; diff --git a/Source/cmVisualStudio10ToolsetOptions.cxx b/Source/cmVisualStudio10ToolsetOptions.cxx index b928f43..afca216 100644 --- a/Source/cmVisualStudio10ToolsetOptions.cxx +++ b/Source/cmVisualStudio10ToolsetOptions.cxx @@ -7,22 +7,27 @@ #include "cmVisualStudioGeneratorOptions.h" #include "cmVS10CLFlagTable.h" +#include "cmVS10CSharpFlagTable.h" #include "cmVS10LibFlagTable.h" #include "cmVS10LinkFlagTable.h" #include "cmVS10MASMFlagTable.h" #include "cmVS10RCFlagTable.h" #include "cmVS11CLFlagTable.h" +#include "cmVS11CSharpFlagTable.h" #include "cmVS11LibFlagTable.h" #include "cmVS11LinkFlagTable.h" #include "cmVS11MASMFlagTable.h" #include "cmVS11RCFlagTable.h" #include "cmVS12CLFlagTable.h" +#include "cmVS12CSharpFlagTable.h" #include "cmVS12LibFlagTable.h" #include "cmVS12LinkFlagTable.h" #include "cmVS12MASMFlagTable.h" #include "cmVS12RCFlagTable.h" #include "cmVS140CLFlagTable.h" +#include "cmVS140CSharpFlagTable.h" #include "cmVS141CLFlagTable.h" +#include "cmVS141CSharpFlagTable.h" #include "cmVS14LibFlagTable.h" #include "cmVS14LinkFlagTable.h" #include "cmVS14MASMFlagTable.h" @@ -48,6 +53,26 @@ cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetClFlagTable( } } +cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetCSharpFlagTable( + std::string const& name, std::string const& toolset) const +{ + std::string const useToolset = this->GetToolsetName(name, toolset); + + if ((useToolset == "v141")) { + return cmVS141CSharpFlagTable; + } else if (useToolset == "v140") { + return cmVS140CSharpFlagTable; + } else if (useToolset == "v120") { + return cmVS12CSharpFlagTable; + } else if (useToolset == "v110") { + return cmVS11CSharpFlagTable; + } else if (useToolset == "v100") { + return cmVS10CSharpFlagTable; + } else { + return 0; + } +} + cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetRcFlagTable( std::string const& name, std::string const& toolset) const { diff --git a/Source/cmVisualStudio10ToolsetOptions.h b/Source/cmVisualStudio10ToolsetOptions.h index bb0be15..2459f5e 100644 --- a/Source/cmVisualStudio10ToolsetOptions.h +++ b/Source/cmVisualStudio10ToolsetOptions.h @@ -19,6 +19,8 @@ class cmVisualStudio10ToolsetOptions public: cmIDEFlagTable const* GetClFlagTable(std::string const& name, std::string const& toolset) const; + cmIDEFlagTable const* GetCSharpFlagTable(std::string const& name, + std::string const& toolset) const; cmIDEFlagTable const* GetRcFlagTable(std::string const& name, std::string const& toolset) const; cmIDEFlagTable const* GetLibFlagTable(std::string const& name, -- cgit v0.12