Support Visual Studio 2022 project generation. Default option is kept at 2019 for now. BUG=269 Change-Id: I786667bc0ffed2b1ce9bd2106e58ecf222aee1ee Reviewed-on: https://gn-review.googlesource.com/c/gn/+/12500 Reviewed-by: Scott Graham <scottmg@chromium.org> Reviewed-by: Brett Wilson <brettw@chromium.org> Commit-Queue: Brett Wilson <brettw@chromium.org>
diff --git a/src/gn/command_gen.cc b/src/gn/command_gen.cc index e391d26..23f15a0 100644 --- a/src/gn/command_gen.cc +++ b/src/gn/command_gen.cc
@@ -43,6 +43,7 @@ const char kSwitchIdeValueVs2015[] = "vs2015"; const char kSwitchIdeValueVs2017[] = "vs2017"; const char kSwitchIdeValueVs2019[] = "vs2019"; +const char kSwitchIdeValueVs2022[] = "vs2022"; const char kSwitchIdeValueWinSdk[] = "winsdk"; const char kSwitchIdeValueXcode[] = "xcode"; const char kSwitchIdeValueJson[] = "json"; @@ -210,7 +211,7 @@ return res; } else if (ide == kSwitchIdeValueVs || ide == kSwitchIdeValueVs2013 || ide == kSwitchIdeValueVs2015 || ide == kSwitchIdeValueVs2017 || - ide == kSwitchIdeValueVs2019) { + ide == kSwitchIdeValueVs2019 || ide == kSwitchIdeValueVs2022) { VisualStudioWriter::Version version = VisualStudioWriter::Version::Vs2019; if (ide == kSwitchIdeValueVs2013) version = VisualStudioWriter::Version::Vs2013; @@ -218,6 +219,8 @@ version = VisualStudioWriter::Version::Vs2015; else if (ide == kSwitchIdeValueVs2017) version = VisualStudioWriter::Version::Vs2017; + else if (ide == kSwitchIdeValueVs2022) + version = VisualStudioWriter::Version::Vs2022; std::string sln_name; if (command_line->HasSwitch(kSwitchSln)) @@ -468,6 +471,7 @@ "vs2015" - Visual Studio 2015 project/solution files. "vs2017" - Visual Studio 2017 project/solution files. "vs2019" - Visual Studio 2019 project/solution files. + "vs2022" - Visual Studio 2022 project/solution files. "xcode" - Xcode workspace/solution files. "qtcreator" - QtCreator project files. "json" - JSON file containing target information
diff --git a/src/gn/visual_studio_writer.cc b/src/gn/visual_studio_writer.cc index e88a469..f567d36 100644 --- a/src/gn/visual_studio_writer.cc +++ b/src/gn/visual_studio_writer.cc
@@ -73,14 +73,17 @@ const char kToolsetVersionVs2015[] = "v140"; // Visual Studio 2015 const char kToolsetVersionVs2017[] = "v141"; // Visual Studio 2017 const char kToolsetVersionVs2019[] = "v142"; // Visual Studio 2019 +const char kToolsetVersionVs2022[] = "v143"; // Visual Studio 2022 const char kProjectVersionVs2013[] = "12.0"; // Visual Studio 2013 const char kProjectVersionVs2015[] = "14.0"; // Visual Studio 2015 const char kProjectVersionVs2017[] = "15.0"; // Visual Studio 2017 const char kProjectVersionVs2019[] = "16.0"; // Visual Studio 2019 +const char kProjectVersionVs2022[] = "17.0"; // Visual Studio 2022 const char kVersionStringVs2013[] = "Visual Studio 2013"; // Visual Studio 2013 const char kVersionStringVs2015[] = "Visual Studio 2015"; // Visual Studio 2015 const char kVersionStringVs2017[] = "Visual Studio 2017"; // Visual Studio 2017 const char kVersionStringVs2019[] = "Visual Studio 2019"; // Visual Studio 2019 +const char kVersionStringVs2022[] = "Visual Studio 2022"; // Visual Studio 2022 const char kWindowsKitsVersion[] = "10"; // Windows 10 SDK const char kWindowsKitsDefaultVersion[] = "10"; // Windows 10 SDK @@ -311,8 +314,11 @@ toolset_version_ = kToolsetVersionVs2019; version_string_ = kVersionStringVs2019; break; - default: - NOTREACHED() << "Not a valid Visual Studio Version: " << version; + case Version::Vs2022: + project_version_ = kProjectVersionVs2022; + toolset_version_ = kToolsetVersionVs2022; + version_string_ = kVersionStringVs2022; + break; } windows_kits_include_dirs_ = GetWindowsKitsIncludeDirs(win_kit);
diff --git a/src/gn/visual_studio_writer.h b/src/gn/visual_studio_writer.h index 428f18b..bcb9e22 100644 --- a/src/gn/visual_studio_writer.h +++ b/src/gn/visual_studio_writer.h
@@ -30,6 +30,7 @@ Vs2015, // Visual Studio 2015 Vs2017, // Visual Studio 2017 Vs2019, // Visual Studio 2019 + Vs2022, // Visual Studio 2022 }; // Writes Visual Studio project and solution files. |sln_name| is the optional