mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-02 03:39:43 -06:00
cmVisualStudio10TargetGenerator: make sure each Elem has right scope
Prepare for future RAII
This commit is contained in:
committed by
Brad King
parent
90e7103fc6
commit
45c4a75d27
@@ -96,6 +96,11 @@ struct cmVisualStudio10TargetGenerator::Elem
|
||||
}
|
||||
void EndElement()
|
||||
{
|
||||
// Do not emit element which has not been started
|
||||
if (Tag.empty()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (HasElements) {
|
||||
this->WriteString("</") << this->Tag << ">";
|
||||
if (this->Indent > 0) {
|
||||
@@ -1280,12 +1285,16 @@ void cmVisualStudio10TargetGenerator::WriteCustomRule(
|
||||
}
|
||||
cmLocalVisualStudio7Generator* lg = this->LocalGenerator;
|
||||
|
||||
Elem e1(e0, "ItemGroup");
|
||||
Elem e2(e1);
|
||||
std::unique_ptr<Elem> spe1;
|
||||
std::unique_ptr<Elem> spe2;
|
||||
if (this->ProjectType != csproj) {
|
||||
this->WriteSource(e2, "CustomBuild", source);
|
||||
e2.SetHasElements();
|
||||
spe1 = cm::make_unique<Elem>(e0, "ItemGroup");
|
||||
spe2 = cm::make_unique<Elem>(*spe1);
|
||||
this->WriteSource(*spe2, "CustomBuild", source);
|
||||
spe2->SetHasElements();
|
||||
} else {
|
||||
Elem e1(e0, "ItemGroup");
|
||||
Elem e2(e1);
|
||||
std::string link;
|
||||
this->GetCSharpSourceLink(source, link);
|
||||
this->WriteSource(e2, "None", source);
|
||||
@@ -1326,13 +1335,13 @@ void cmVisualStudio10TargetGenerator::WriteCustomRule(
|
||||
this->WriteCustomRuleCSharp(e0, c, name, script, inputs.str(),
|
||||
outputs.str(), comment);
|
||||
} else {
|
||||
this->WriteCustomRuleCpp(e2, c, script, inputs.str(), outputs.str(),
|
||||
this->WriteCustomRuleCpp(*spe2, c, script, inputs.str(), outputs.str(),
|
||||
comment);
|
||||
}
|
||||
}
|
||||
if (this->ProjectType != csproj) {
|
||||
e2.EndElement();
|
||||
e1.EndElement();
|
||||
spe2->EndElement();
|
||||
spe1->EndElement();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3887,7 +3896,6 @@ void cmVisualStudio10TargetGenerator::WriteSDKReferences(Elem& e0)
|
||||
iotExtensionsVersion) {
|
||||
if (!hasWrittenItemGroup) {
|
||||
e1.StartElement("ItemGroup");
|
||||
hasWrittenItemGroup = true;
|
||||
}
|
||||
if (desktopExtensionsVersion) {
|
||||
this->WriteSingleSDKReference(e1, "WindowsDesktop",
|
||||
@@ -3903,9 +3911,7 @@ void cmVisualStudio10TargetGenerator::WriteSDKReferences(Elem& e0)
|
||||
}
|
||||
}
|
||||
|
||||
if (hasWrittenItemGroup) {
|
||||
e1.EndElement();
|
||||
}
|
||||
e1.EndElement();
|
||||
}
|
||||
|
||||
void cmVisualStudio10TargetGenerator::WriteSingleSDKReference(
|
||||
@@ -4207,10 +4213,12 @@ void cmVisualStudio10TargetGenerator::WriteMissingFilesWP80(Elem& e1)
|
||||
|
||||
std::string sourceFile = this->ConvertPath(manifestFile, false);
|
||||
ConvertToWindowsSlash(sourceFile);
|
||||
Elem e2(e1, "Xml");
|
||||
e2.Attribute("Include", sourceFile);
|
||||
e2.Element("SubType", "Designer");
|
||||
e2.EndElement();
|
||||
{
|
||||
Elem e2(e1, "Xml");
|
||||
e2.Attribute("Include", sourceFile);
|
||||
e2.Element("SubType", "Designer");
|
||||
e2.EndElement();
|
||||
}
|
||||
this->AddedFiles.push_back(sourceFile);
|
||||
|
||||
std::string smallLogo = this->DefaultArtifactDir + "/SmallLogo.png";
|
||||
@@ -4482,10 +4490,12 @@ void cmVisualStudio10TargetGenerator::WriteCommonMissingFiles(
|
||||
|
||||
std::string sourceFile = this->ConvertPath(manifestFile, false);
|
||||
ConvertToWindowsSlash(sourceFile);
|
||||
Elem e2(e1, "AppxManifest");
|
||||
e2.Attribute("Include", sourceFile);
|
||||
e2.Element("SubType", "Designer");
|
||||
e2.EndElement();
|
||||
{
|
||||
Elem e2(e1, "AppxManifest");
|
||||
e2.Attribute("Include", sourceFile);
|
||||
e2.Element("SubType", "Designer");
|
||||
e2.EndElement();
|
||||
}
|
||||
this->AddedFiles.push_back(sourceFile);
|
||||
|
||||
std::string smallLogo = this->DefaultArtifactDir + "/SmallLogo.png";
|
||||
|
||||
Reference in New Issue
Block a user