ENH: only output each link path once
This commit is contained in:
parent
4688198996
commit
3df3d839cc
|
@ -550,6 +550,8 @@ void cmDSPWriter::WriteDSPHeader(std::ostream& fout, const char *libName,
|
||||||
const cmTarget &target,
|
const cmTarget &target,
|
||||||
std::vector<cmSourceGroup> &)
|
std::vector<cmSourceGroup> &)
|
||||||
{
|
{
|
||||||
|
std::set<std::string> pathEmitted;
|
||||||
|
|
||||||
// determine the link directories
|
// determine the link directories
|
||||||
std::string libOptions;
|
std::string libOptions;
|
||||||
std::string libDebugOptions;
|
std::string libDebugOptions;
|
||||||
|
@ -578,18 +580,22 @@ void cmDSPWriter::WriteDSPHeader(std::ostream& fout, const char *libName,
|
||||||
{
|
{
|
||||||
libPath += "/";
|
libPath += "/";
|
||||||
}
|
}
|
||||||
libOptions += " /LIBPATH:\"";
|
std::string lpath = cmSystemTools::HandleNetworkPaths(libPath.c_str());
|
||||||
libOptions += cmSystemTools::HandleNetworkPaths(libPath.c_str());
|
if(pathEmitted.insert(lpath).second)
|
||||||
libOptions += "$(INTDIR)\" ";
|
{
|
||||||
libOptions += " /LIBPATH:\"";
|
libOptions += " /LIBPATH:\"";
|
||||||
libOptions += cmSystemTools::HandleNetworkPaths(libPath.c_str());
|
libOptions += lpath;
|
||||||
libOptions += "\" ";
|
libOptions += "$(INTDIR)\" ";
|
||||||
libMultiLineOptions += "# ADD LINK32 /LIBPATH:\"";
|
libOptions += " /LIBPATH:\"";
|
||||||
libMultiLineOptions += cmSystemTools::HandleNetworkPaths(libPath.c_str());
|
libOptions += lpath;
|
||||||
libMultiLineOptions += "$(INTDIR)\" ";
|
libOptions += "\" ";
|
||||||
libMultiLineOptions += " /LIBPATH:\"";
|
libMultiLineOptions += "# ADD LINK32 /LIBPATH:\"";
|
||||||
libMultiLineOptions += cmSystemTools::HandleNetworkPaths(libPath.c_str());
|
libMultiLineOptions += lpath;
|
||||||
libMultiLineOptions += "\" \n";
|
libMultiLineOptions += "$(INTDIR)\" ";
|
||||||
|
libMultiLineOptions += " /LIBPATH:\"";
|
||||||
|
libMultiLineOptions += lpath;
|
||||||
|
libMultiLineOptions += "\" \n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(exePath.size())
|
if(exePath.size())
|
||||||
{
|
{
|
||||||
|
@ -598,37 +604,50 @@ void cmDSPWriter::WriteDSPHeader(std::ostream& fout, const char *libName,
|
||||||
{
|
{
|
||||||
exePath += "/";
|
exePath += "/";
|
||||||
}
|
}
|
||||||
libOptions += " /LIBPATH:\"";
|
std::string lpath = cmSystemTools::HandleNetworkPaths(exePath.c_str());
|
||||||
libOptions += cmSystemTools::HandleNetworkPaths(exePath.c_str());
|
if(pathEmitted.insert(lpath).second)
|
||||||
libOptions += "$(INTDIR)\" ";
|
{
|
||||||
libOptions += " /LIBPATH:\"";
|
libOptions += " /LIBPATH:\"";
|
||||||
libOptions += cmSystemTools::HandleNetworkPaths(exePath.c_str());
|
libOptions += lpath;
|
||||||
libOptions += "\" ";
|
libOptions += "$(INTDIR)\" ";
|
||||||
libMultiLineOptions += "# ADD LINK32 /LIBPATH:\"";
|
libOptions += " /LIBPATH:\"";
|
||||||
libMultiLineOptions += cmSystemTools::HandleNetworkPaths(exePath.c_str());
|
libOptions += lpath;
|
||||||
libMultiLineOptions += "$(INTDIR)\" ";
|
libOptions += "\" ";
|
||||||
libMultiLineOptions += " /LIBPATH:\"";
|
libMultiLineOptions += "# ADD LINK32 /LIBPATH:\"";
|
||||||
libMultiLineOptions += cmSystemTools::HandleNetworkPaths(exePath.c_str());
|
libMultiLineOptions += lpath;
|
||||||
libMultiLineOptions += "\" \n";
|
libMultiLineOptions += "$(INTDIR)\" ";
|
||||||
|
libMultiLineOptions += " /LIBPATH:\"";
|
||||||
|
libMultiLineOptions += lpath;
|
||||||
|
libMultiLineOptions += "\" \n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
std::vector<std::string>::iterator i;
|
std::vector<std::string>::iterator i;
|
||||||
std::vector<std::string>& libdirs = m_Makefile->GetLinkDirectories();
|
std::vector<std::string>& libdirs = m_Makefile->GetLinkDirectories();
|
||||||
for(i = libdirs.begin(); i != libdirs.end(); ++i)
|
for(i = libdirs.begin(); i != libdirs.end(); ++i)
|
||||||
{
|
{
|
||||||
libOptions += " /LIBPATH:\"";
|
std::string lpath = cmSystemTools::HandleNetworkPaths(i->c_str());
|
||||||
libOptions += cmSystemTools::HandleNetworkPaths(i->c_str());
|
if(lpath[lpath.size()-1] != '/')
|
||||||
libOptions += "/$(INTDIR)\" ";
|
{
|
||||||
libOptions += " /LIBPATH:\"";
|
lpath += "/";
|
||||||
libOptions += cmSystemTools::HandleNetworkPaths(i->c_str());
|
}
|
||||||
libOptions += "\" ";
|
if(pathEmitted.insert(lpath).second)
|
||||||
|
{
|
||||||
|
libOptions += " /LIBPATH:\"";
|
||||||
|
libOptions += lpath;
|
||||||
|
libOptions += "/$(INTDIR)\" ";
|
||||||
|
libOptions += " /LIBPATH:\"";
|
||||||
|
libOptions += lpath;
|
||||||
|
libOptions += "\" ";
|
||||||
|
|
||||||
libMultiLineOptions += "# ADD LINK32 /LIBPATH:\"";
|
libMultiLineOptions += "# ADD LINK32 /LIBPATH:\"";
|
||||||
libMultiLineOptions += cmSystemTools::HandleNetworkPaths(i->c_str());
|
libMultiLineOptions += lpath;
|
||||||
libMultiLineOptions += "/$(INTDIR)\" ";
|
libMultiLineOptions += "/$(INTDIR)\" ";
|
||||||
libMultiLineOptions += " /LIBPATH:\"";
|
libMultiLineOptions += " /LIBPATH:\"";
|
||||||
libMultiLineOptions += cmSystemTools::HandleNetworkPaths(i->c_str());
|
libMultiLineOptions += lpath;
|
||||||
libMultiLineOptions += "\" \n";
|
libMultiLineOptions += "\" \n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// find link libraries
|
// find link libraries
|
||||||
const cmTarget::LinkLibraries& libs = target.GetLinkLibraries();
|
const cmTarget::LinkLibraries& libs = target.GetLinkLibraries();
|
||||||
cmTarget::LinkLibraries::const_iterator j;
|
cmTarget::LinkLibraries::const_iterator j;
|
||||||
|
|
Loading…
Reference in New Issue