Merge topic 'FixBadXMLInEclipseProjects'

79e13af Add XML escaping for directory name in Eclipse projects (#11658)
8074bca Fix XML escaping for target names in Eclipse project files (#11658)
cb94587 Fix XML escaping for the project() name in Eclipse projects (#11658)
This commit is contained in:
Brad King 2011-02-22 14:32:27 -05:00 committed by CMake Topic Stage
commit 7dcf2269ec
1 changed files with 12 additions and 7 deletions

View File

@ -431,7 +431,8 @@ void cmExtraEclipseCDT4Generator::AppendIncludeDirectories(
{
emittedDirs.insert(dir);
fout << "<pathentry include=\""
<< cmExtraEclipseCDT4Generator::GetEclipsePath(dir)
<< cmExtraEclipseCDT4Generator::EscapeForXML(
cmExtraEclipseCDT4Generator::GetEclipsePath(dir))
<< "\" kind=\"inc\" path=\"\" system=\"true\"/>\n";
}
}
@ -875,8 +876,9 @@ void cmExtraEclipseCDT4Generator::CreateCProjectFile() const
fout << "</cconfiguration>\n"
"</storageModule>\n"
"<storageModule moduleId=\"cdtBuildSystem\" version=\"4.0.0\">\n"
"<project id=\"" << mf->GetProjectName() << ".null.1\""
" name=\"" << mf->GetProjectName() << "\"/>\n"
"<project id=\"" << this->EscapeForXML(mf->GetProjectName())
<< ".null.1\" name=\"" << this->EscapeForXML(mf->GetProjectName())
<< "\"/>\n"
"</storageModule>\n"
"</cproject>\n"
;
@ -927,7 +929,8 @@ cmExtraEclipseCDT4Generator::GenerateProjectName(const std::string& name,
const std::string& type,
const std::string& path)
{
return name + (type.empty() ? "" : "-") + type + "@" + path;
return cmExtraEclipseCDT4Generator::EscapeForXML(name)
+(type.empty() ? "" : "-") + type + "@" + path;
}
std::string cmExtraEclipseCDT4Generator::EscapeForXML(const std::string& value)
@ -999,15 +1002,17 @@ void cmExtraEclipseCDT4Generator::AppendTarget(cmGeneratedFileStream& fout,
const std::string& path,
const char* prefix)
{
std::string targetXml = cmExtraEclipseCDT4Generator::EscapeForXML(target);
std::string pathXml = cmExtraEclipseCDT4Generator::EscapeForXML(path);
fout <<
"<target name=\"" << prefix << target << "\""
" path=\"" << path.c_str() << "\""
"<target name=\"" << prefix << targetXml << "\""
" path=\"" << pathXml.c_str() << "\""
" targetID=\"org.eclipse.cdt.make.MakeTargetBuilder\">\n"
"<buildCommand>"
<< cmExtraEclipseCDT4Generator::GetEclipsePath(make)
<< "</buildCommand>\n"
"<buildArguments>" << makeArgs << "</buildArguments>\n"
"<buildTarget>" << target << "</buildTarget>\n"
"<buildTarget>" << targetXml << "</buildTarget>\n"
"<stopOnError>true</stopOnError>\n"
"<useDefaultCommand>false</useDefaultCommand>\n"
"</target>\n"