ENH: allow lib prefix for to stay for nmake and borland make as it is not a system prefix
This commit is contained in:
parent
46acf162f5
commit
63ca58ceaf
@ -40,6 +40,7 @@ cmLocalGenerator *cmGlobalNMakeMakefileGenerator::CreateLocalGenerator()
|
|||||||
lg->SetWindowsShell(true);
|
lg->SetWindowsShell(true);
|
||||||
lg->SetMakeSilentFlag("/nologo");
|
lg->SetMakeSilentFlag("/nologo");
|
||||||
lg->SetGlobalGenerator(this);
|
lg->SetGlobalGenerator(this);
|
||||||
|
lg->SetIgnoreLibPrefix(true);
|
||||||
return lg;
|
return lg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -31,6 +31,7 @@ cmLocalUnixMakefileGenerator::cmLocalUnixMakefileGenerator()
|
|||||||
m_WindowsShell = false;
|
m_WindowsShell = false;
|
||||||
m_IncludeDirective = "include";
|
m_IncludeDirective = "include";
|
||||||
m_MakefileVariableSize = 0;
|
m_MakefileVariableSize = 0;
|
||||||
|
m_IgnoreLibPrefix = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
cmLocalUnixMakefileGenerator::~cmLocalUnixMakefileGenerator()
|
cmLocalUnixMakefileGenerator::~cmLocalUnixMakefileGenerator()
|
||||||
@ -601,11 +602,19 @@ void cmLocalUnixMakefileGenerator::OutputLinkLibraries(std::ostream& fout,
|
|||||||
}
|
}
|
||||||
cmsys::RegularExpression libname("^lib([^/]*)(\\.so|\\.lib|\\.dll|\\.sl|\\.a|\\.dylib).*");
|
cmsys::RegularExpression libname("^lib([^/]*)(\\.so|\\.lib|\\.dll|\\.sl|\\.a|\\.dylib).*");
|
||||||
cmsys::RegularExpression libname_noprefix("([^/]*)(\\.so|\\.lib|\\.dll|\\.sl|\\.a|\\.dylib).*");
|
cmsys::RegularExpression libname_noprefix("([^/]*)(\\.so|\\.lib|\\.dll|\\.sl|\\.a|\\.dylib).*");
|
||||||
|
std::cout << "file is " << file << "\n";
|
||||||
if(libname.find(file))
|
if(libname.find(file))
|
||||||
{
|
{
|
||||||
// Library had "lib" prefix.
|
// Library had "lib" prefix.
|
||||||
librariesLinked += libLinkFlag;
|
librariesLinked += libLinkFlag;
|
||||||
file = libname.match(1);
|
file = libname.match(1);
|
||||||
|
// if ignore libprefix is on,
|
||||||
|
// then add the lib prefix back into the name
|
||||||
|
if(m_IgnoreLibPrefix)
|
||||||
|
{
|
||||||
|
std::cout << "m_IgnoreLibPrefix\n";
|
||||||
|
file = "lib" + file;
|
||||||
|
}
|
||||||
librariesLinked += file;
|
librariesLinked += file;
|
||||||
if(linkSuffix.size() && !hasSuffix.find(file))
|
if(linkSuffix.size() && !hasSuffix.find(file))
|
||||||
{
|
{
|
||||||
|
@ -77,6 +77,10 @@ public:
|
|||||||
///! Set max makefile variable size, default is 0 which means unlimited.
|
///! Set max makefile variable size, default is 0 which means unlimited.
|
||||||
void SetMakefileVariableSize(int s) { m_MakefileVariableSize = s; }
|
void SetMakefileVariableSize(int s) { m_MakefileVariableSize = s; }
|
||||||
|
|
||||||
|
///! If ignore lib prefix is true, then do not strip lib from the name of a library.
|
||||||
|
void SetIgnoreLibPrefix(bool s) { m_IgnoreLibPrefix = s; }
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void AddDependenciesToSourceFile(cmDependInformation const*info,
|
void AddDependenciesToSourceFile(cmDependInformation const*info,
|
||||||
cmSourceFile *i,
|
cmSourceFile *i,
|
||||||
@ -207,7 +211,7 @@ protected:
|
|||||||
int m_MakefileVariableSize;
|
int m_MakefileVariableSize;
|
||||||
std::map<cmStdString, cmStdString> m_MakeVariableMap;
|
std::map<cmStdString, cmStdString> m_MakeVariableMap;
|
||||||
std::map<cmStdString, cmStdString> m_ShortMakeVariableMap;
|
std::map<cmStdString, cmStdString> m_ShortMakeVariableMap;
|
||||||
|
bool m_IgnoreLibPrefix;
|
||||||
std::string m_IncludeDirective;
|
std::string m_IncludeDirective;
|
||||||
std::string m_MakeSilentFlag;
|
std::string m_MakeSilentFlag;
|
||||||
std::string m_ExecutableOutputPath;
|
std::string m_ExecutableOutputPath;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user