/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #include "cmVisualStudio10ToolsetOptions.h" #include "cmAlgorithms.h" #include "cmIDEFlagTable.h" #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 "cmVS140LinkFlagTable.h" #include "cmVS141CLFlagTable.h" #include "cmVS141CSharpFlagTable.h" #include "cmVS141LinkFlagTable.h" #include "cmVS14LibFlagTable.h" #include "cmVS14MASMFlagTable.h" #include "cmVS14RCFlagTable.h" cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetClFlagTable( std::string const& name, std::string const& toolset) const { std::string const useToolset = this->GetToolsetName(name, toolset); if (toolset == "v141") { return cmVS141CLFlagTable; } else if (useToolset == "v140") { return cmVS140CLFlagTable; } else if (useToolset == "v120") { return cmVS12CLFlagTable; } else if (useToolset == "v110") { return cmVS11CLFlagTable; } else if (useToolset == "v100") { return cmVS10CLFlagTable; } else { return 0; } } 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 { std::string const useToolset = this->GetToolsetName(name, toolset); if ((useToolset == "v140") || (useToolset == "v141")) { return cmVS14RCFlagTable; } else if (useToolset == "v120") { return cmVS12RCFlagTable; } else if (useToolset == "v110") { return cmVS11RCFlagTable; } else if (useToolset == "v100") { return cmVS10RCFlagTable; } else { return 0; } } cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetLibFlagTable( std::string const& name, std::string const& toolset) const { std::string const useToolset = this->GetToolsetName(name, toolset); if ((useToolset == "v140") || (useToolset == "v141")) { return cmVS14LibFlagTable; } else if (useToolset == "v120") { return cmVS12LibFlagTable; } else if (useToolset == "v110") { return cmVS11LibFlagTable; } else if (useToolset == "v100") { return cmVS10LibFlagTable; } else { return 0; } } cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetLinkFlagTable( std::string const& name, std::string const& toolset) const { std::string const useToolset = this->GetToolsetName(name, toolset); if (useToolset == "v141") { return cmVS141LinkFlagTable; } else if (useToolset == "v140") { return cmVS140LinkFlagTable; } else if (useToolset == "v120") { return cmVS12LinkFlagTable; } else if (useToolset == "v110") { return cmVS11LinkFlagTable; } else if (useToolset == "v100") { return cmVS10LinkFlagTable; } else { return 0; } } cmIDEFlagTable const* cmVisualStudio10ToolsetOptions::GetMasmFlagTable( std::string const& name, std::string const& toolset) const { std::string const useToolset = this->GetToolsetName(name, toolset); if ((useToolset == "v140") || (useToolset == "v141")) { return cmVS14MASMFlagTable; } else if (useToolset == "v120") { return cmVS12MASMFlagTable; } else if (useToolset == "v110") { return cmVS11MASMFlagTable; } else if (useToolset == "v100") { return cmVS10MASMFlagTable; } else { return 0; } } std::string cmVisualStudio10ToolsetOptions::GetToolsetName( std::string const& name, std::string const& toolset) const { static_cast(name); std::size_t length = toolset.length(); if (cmHasLiteralSuffix(toolset, "_xp")) { length -= 3; } return toolset.substr(0, length); }