| Index: tools/gn/visual_studio_writer.cc
|
| diff --git a/tools/gn/visual_studio_writer.cc b/tools/gn/visual_studio_writer.cc
|
| index dec083753f79052cdc6a8a0ef80a75cfacf5d739..b0392b41eacd7d2dc6d2574e7218c0cbe1580602 100644
|
| --- a/tools/gn/visual_studio_writer.cc
|
| +++ b/tools/gn/visual_studio_writer.cc
|
| @@ -64,8 +64,12 @@ struct SourceFileWriter {
|
| const SourceFile& source_file_;
|
| };
|
|
|
| -const char kToolsetVersion[] = "v140"; // Visual Studio 2015
|
| -const char kVisualStudioVersion[] = "14.0"; // Visual Studio 2015
|
| +const char kToolsetVersionVs2013[] = "v120"; // Visual Studio 2013
|
| +const char kToolsetVersionVs2015[] = "v140"; // Visual Studio 2015
|
| +const char kProjectVersionVs2013[] = "12.0"; // Visual Studio 2013
|
| +const char kProjectVersionVs2015[] = "14.0"; // Visual Studio 2015
|
| +const char kVersionStringVs2013[] = "Visual Studio 2013"; // Visual Studio 2013
|
| +const char kVersionStringVs2015[] = "Visual Studio 2015"; // Visual Studio 2015
|
| const char kWindowsKitsVersion[] = "10"; // Windows 10 SDK
|
| const char kWindowsKitsIncludeVersion[] = "10.0.10240.0"; // Windows 10 SDK
|
|
|
| @@ -173,7 +177,8 @@ VisualStudioWriter::SolutionProject::SolutionProject(
|
|
|
| VisualStudioWriter::SolutionProject::~SolutionProject() = default;
|
|
|
| -VisualStudioWriter::VisualStudioWriter(const BuildSettings* build_settings)
|
| +VisualStudioWriter::VisualStudioWriter(const BuildSettings* build_settings,
|
| + Version version)
|
| : build_settings_(build_settings) {
|
| const Value* value = build_settings->build_args().GetArgOverride("is_debug");
|
| is_debug_config_ = value == nullptr || value->boolean_value();
|
| @@ -182,6 +187,21 @@ VisualStudioWriter::VisualStudioWriter(const BuildSettings* build_settings)
|
| if (value != nullptr && value->string_value() == "x64")
|
| config_platform_ = "x64";
|
|
|
| + switch (version) {
|
| + case Version::Vs2013:
|
| + project_version_ = kProjectVersionVs2013;
|
| + toolset_version_ = kToolsetVersionVs2013;
|
| + version_string_ = kVersionStringVs2013;
|
| + break;
|
| + case Version::Vs2015:
|
| + project_version_ = kProjectVersionVs2015;
|
| + toolset_version_ = kToolsetVersionVs2015;
|
| + version_string_ = kVersionStringVs2015;
|
| + break;
|
| + default:
|
| + NOTREACHED() << "Not a valid Visual Studio Version: " << version;
|
| + }
|
| +
|
| windows_kits_include_dirs_ = GetWindowsKitsIncludeDirs();
|
| }
|
|
|
| @@ -193,10 +213,11 @@ VisualStudioWriter::~VisualStudioWriter() {
|
| // static
|
| bool VisualStudioWriter::RunAndWriteFiles(const BuildSettings* build_settings,
|
| Builder* builder,
|
| + Version version,
|
| Err* err) {
|
| std::vector<const Target*> targets = builder->GetAllResolvedTargets();
|
|
|
| - VisualStudioWriter writer(build_settings);
|
| + VisualStudioWriter writer(build_settings, version);
|
| writer.projects_.reserve(targets.size());
|
| writer.folders_.reserve(targets.size());
|
|
|
| @@ -290,7 +311,7 @@ bool VisualStudioWriter::WriteProjectFileContents(
|
| XmlElementWriter project(
|
| out, "Project",
|
| XmlAttributes("DefaultTargets", "Build")
|
| - .add("ToolsVersion", kVisualStudioVersion)
|
| + .add("ToolsVersion", project_version_)
|
| .add("xmlns", "http://schemas.microsoft.com/developer/msbuild/2003"));
|
|
|
| {
|
| @@ -333,7 +354,7 @@ bool VisualStudioWriter::WriteProjectFileContents(
|
| {
|
| scoped_ptr<XmlElementWriter> locals =
|
| project.SubElement("PropertyGroup", XmlAttributes("Label", "Locals"));
|
| - locals->SubElement("PlatformToolset")->Text(kToolsetVersion);
|
| + locals->SubElement("PlatformToolset")->Text(toolset_version_);
|
| }
|
|
|
| project.SubElement(
|
| @@ -580,7 +601,7 @@ void VisualStudioWriter::WriteSolutionFileContents(
|
| const base::FilePath& solution_dir_path) {
|
| out << "Microsoft Visual Studio Solution File, Format Version 12.00"
|
| << std::endl;
|
| - out << "# Visual Studio 2015" << std::endl;
|
| + out << "# " << version_string_ << std::endl;
|
|
|
| SourceDir solution_dir(FilePathToUTF8(solution_dir_path));
|
| for (const SolutionEntry* folder : folders_) {
|
|
|