Merge topic 'vs-add-package-reference'

42e14d90b1 VS: Added support for VS package references for nuget

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Leonid Pospelov <pospelovlm@yandex.ru>
Merge-request: !3389
This commit is contained in:
Brad King
2019-05-31 17:18:21 +00:00
committed by Kitware Robot
8 changed files with 95 additions and 0 deletions

View File

@@ -665,6 +665,7 @@ void cmVisualStudio10TargetGenerator::Generate()
this->WriteCustomCommands(e0);
this->WriteAllSources(e0);
this->WriteDotNetReferences(e0);
this->WritePackageReferences(e0);
this->WriteImports(e0);
this->WriteEmbeddedResourceGroup(e0);
this->WriteXamlFilesGroup(e0);
@@ -738,6 +739,33 @@ void cmVisualStudio10TargetGenerator::Generate()
this->WriteGroups();
}
void cmVisualStudio10TargetGenerator::WritePackageReferences(Elem& e0)
{
std::vector<std::string> packageReferences;
if (const char* vsPackageReferences =
this->GeneratorTarget->GetProperty("VS_PACKAGE_REFERENCES")) {
cmSystemTools::ExpandListArgument(vsPackageReferences, packageReferences);
}
if (!packageReferences.empty()) {
Elem e1(e0, "ItemGroup");
for (std::string const& ri : packageReferences) {
size_t versionIndex = ri.find_last_of('_');
if (versionIndex != std::string::npos) {
WritePackageReference(e1, ri.substr(0, versionIndex),
ri.substr(versionIndex + 1));
}
}
}
}
void cmVisualStudio10TargetGenerator::WritePackageReference(
Elem& e1, std::string const& ref, std::string const& version)
{
Elem e2(e1, "PackageReference");
e2.Attribute("Include", ref);
e2.Attribute("Version", version);
}
void cmVisualStudio10TargetGenerator::WriteDotNetReferences(Elem& e0)
{
std::vector<std::string> references;