Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Unified Diff: tools/gn/visual_studio_writer.cc

Issue 1713363002: GN support for generating VS2013 project files (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: better help message, simplification in command_gen.cc Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/gn/visual_studio_writer.h ('k') | tools/gn/visual_studio_writer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_) {
« no previous file with comments | « tools/gn/visual_studio_writer.h ('k') | tools/gn/visual_studio_writer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698