summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2002-02-28 20:42:13 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2002-02-28 20:42:13 (GMT)
commit96db7986279c65c5e07afee432f49532a8590d57 (patch)
tree13f19d2d9ef9532d75ddcb344cb94e780b66440a
parente8c2483b4e8af3f53065cf39459f60b252039161 (diff)
downloadCMake-96db7986279c65c5e07afee432f49532a8590d57.zip
CMake-96db7986279c65c5e07afee432f49532a8590d57.tar.gz
CMake-96db7986279c65c5e07afee432f49532a8590d57.tar.bz2
use xml output quotes for paths
-rw-r--r--Source/cmMSDotNETGenerator.cxx54
-rw-r--r--Source/cmMSDotNETGenerator.h3
2 files changed, 22 insertions, 35 deletions
diff --git a/Source/cmMSDotNETGenerator.cxx b/Source/cmMSDotNETGenerator.cxx
index 521f27d..9ea195d 100644
--- a/Source/cmMSDotNETGenerator.cxx
+++ b/Source/cmMSDotNETGenerator.cxx
@@ -25,6 +25,7 @@
+
cmMSDotNETGenerator::cmMSDotNETGenerator()
{
// default to building a sln project file
@@ -533,8 +534,6 @@ void cmMSDotNETGenerator::OutputVCProjFile()
{
m_LibraryOutputPath += "/";
}
- m_LibraryOutputPath =
- cmSystemTools::ConvertToOutputPath(m_LibraryOutputPath.c_str());
}
m_ExecutableOutputPath = "";
if (m_Makefile->GetDefinition("EXECUTABLE_OUTPUT_PATH"))
@@ -549,25 +548,6 @@ void cmMSDotNETGenerator::OutputVCProjFile()
m_ExecutableOutputPath += "/";
}
}
- m_ExecutableOutputPath =
- cmSystemTools::ConvertToOutputPath(m_ExecutableOutputPath.c_str());
-
- std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
- std::vector<std::string>::iterator i;
- for(i = includes.begin(); i != includes.end(); ++i)
- {
- std::string tmp = cmSystemTools::ConvertToOutputPath(i->c_str());
- m_IncludeOptions += ",";
- // quote if not already quoted
- if (tmp[0] != '"')
- {
- m_IncludeOptions += tmp;
- }
- else
- {
- m_IncludeOptions += tmp;
- }
- }
// Create the VCProj or set of VCProj's for libraries and executables
@@ -739,13 +719,10 @@ void cmMSDotNETGenerator::WriteConfiguration(std::ostream& fout,
fout << "\t\t\t\tAdditionalIncludeDirectories=\"";
std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
std::vector<std::string>::iterator i = includes.begin();
- if(i != includes.end())
- {
- fout << "&quot;" << cmSystemTools::ConvertToOutputPath(i->c_str()) << "&quot;";
- }
for(;i != includes.end(); ++i)
{
- fout << ";&quot;" << cmSystemTools::ConvertToOutputPath(i->c_str()) << "&quot;";
+ std::string ipath = this->ConvertToXMLOutputPath(i->c_str());
+ fout << ipath << ";";
}
fout << "\"\n";
@@ -823,11 +800,13 @@ void cmMSDotNETGenerator::OutputBuildTool(std::ostream& fout,
switch(target.GetType())
{
case cmTarget::STATIC_LIBRARY:
+ {
+ std::string libpath = m_LibraryOutputPath + "$(OutDir)/" + libName + ".lib";
fout << "\t\t\t<Tool\n"
<< "\t\t\t\tName=\"VCLibrarianTool\"\n"
- << "\t\t\t\t\tOutputFile=\"" << m_LibraryOutputPath << "$(OutDir)"
- << "/" << libName << ".lib\"/>\n";
+ << "\t\t\t\t\tOutputFile=\"" << this->ConvertToXMLOutputPath(libpath.c_str()) << ".\"/>\n";
break;
+ }
case cmTarget::SHARED_LIBRARY:
case cmTarget::MODULE_LIBRARY:
break;
@@ -894,7 +873,7 @@ void cmMSDotNETGenerator::OutputLibraryDirectories(std::ostream& fout,
std::vector<std::string>& libdirs = m_Makefile->GetLinkDirectories();
for(i = libdirs.begin(); i != libdirs.end(); ++i)
{
- std::string lpath = cmSystemTools::ConvertToOutputPath(i->c_str());
+ std::string lpath = *i;
if(lpath[lpath.size()-1] != '/')
{
lpath += "/";
@@ -905,7 +884,8 @@ void cmMSDotNETGenerator::OutputLibraryDirectories(std::ostream& fout,
{
fout << ",";
}
- fout << lpath << "\\$(INTDIR)," << lpath;
+ std::string lpathi = lpath + "$(INTDIR)";
+ fout << this->ConvertToXMLOutputPath(lpathi.c_str()) << "," << lpath;
hasone = true;
}
}
@@ -925,7 +905,7 @@ void cmMSDotNETGenerator::OutputLibraries(std::ostream& fout,
{
lib += ".lib";
}
- lib = cmSystemTools::ConvertToOutputPath(lib.c_str());
+ lib = this->ConvertToXMLOutputPath(lib.c_str());
if (j->second == cmTarget::GENERAL
|| (j->second == cmTarget::DEBUG && strcmp(configName, "DEBUG") == 0)
|| (j->second == cmTarget::OPTIMIZED && strcmp(configName, "DEBUG") != 0))
@@ -1042,7 +1022,7 @@ void cmMSDotNETGenerator::WriteVCProjFile(std::ostream& fout,
if (source != libName || target.GetType() == cmTarget::UTILITY)
{
fout << "\t\t\t<File\n";
- std::string d = cmSystemTools::ConvertToOutputPath(source.c_str());
+ std::string d = this->ConvertToXMLOutputPath(source.c_str());
// Tell MS-Dev what the source is. If the compiler knows how to
// build it, then it will.
fout << "\t\t\t\tRelativePath=\"" << d << "\">\n";
@@ -1095,7 +1075,7 @@ void cmMSDotNETGenerator::WriteCustomRule(std::ostream& fout,
for(std::set<std::string>::const_iterator d = depends.begin();
d != depends.end(); ++d)
{
- fout << cmSystemTools::ConvertToOutputPath(d->c_str())
+ fout << this->ConvertToXMLOutputPath(d->c_str())
<< ";";
}
fout << "\"\n";
@@ -1242,3 +1222,11 @@ void cmMSDotNETGenerator::WriteVCProjFooter(std::ostream& fout)
<< "\t</Globals>\n"
<< "</VisualStudioProject>\n";
}
+
+
+std::string cmMSDotNETGenerator::ConvertToXMLOutputPath(const char* path)
+{
+ std::string ret = cmSystemTools::ConvertToOutputPath(path);
+ cmSystemTools::ReplaceString(ret, "\"", "&quot;");
+ return ret;
+}
diff --git a/Source/cmMSDotNETGenerator.h b/Source/cmMSDotNETGenerator.h
index 02770ca..0c4650d 100644
--- a/Source/cmMSDotNETGenerator.h
+++ b/Source/cmMSDotNETGenerator.h
@@ -146,13 +146,12 @@ private:
const char* configName,
const char* libName,
const cmTarget &target);
-
+ std::string ConvertToXMLOutputPath(const char* path);
private:
std::map<cmStdString, cmStdString> m_GUIDMap;
bool m_BuildSLN;
std::string m_LibraryOutputPath;
std::string m_ExecutableOutputPath;
- std::string m_IncludeOptions;
std::vector<std::string> m_Configurations;
std::string m_VCProjHeaderTemplate;
std::string m_VCProjFooterTemplate;