BUG: fix depends for libraries and executables in the same dir

This commit is contained in:
Bill Hoffman 2001-04-06 17:01:57 -04:00
parent 2a7964e310
commit 70b14df3f0
6 changed files with 62 additions and 10 deletions

View File

@ -73,6 +73,7 @@ void cmDSPMakefile::OutputDSPFile()
m_LibraryOptions += "/$(OUTDIR)\" "; m_LibraryOptions += "/$(OUTDIR)\" ";
} }
m_LibraryOptions += "/STACK:10000000 "; m_LibraryOptions += "/STACK:10000000 ";
m_OutputLibName = m_Makefile->GetLibraryName();
// Create the DSP or set of DSP's for libraries and executables // Create the DSP or set of DSP's for libraries and executables
if(strlen(m_Makefile->GetLibraryName()) != 0) if(strlen(m_Makefile->GetLibraryName()) != 0)
@ -115,9 +116,10 @@ void cmDSPMakefile::CreateExecutableDSPFiles()
} }
else else
{ {
m_Makefile->SetLibraryName(classfile.m_ClassName.c_str()); // m_Makefile->SetLibraryName(classfile.m_ClassName.c_str());
this->SetBuildType(EXECUTABLE); this->SetBuildType(EXECUTABLE);
std::string pname = m_Makefile->GetLibraryName(); m_OutputLibName = classfile.m_ClassName;
std::string pname = classfile.m_ClassName.c_str(); //m_Makefile->GetLibraryName();
m_CreatedProjectNames.push_back(pname); m_CreatedProjectNames.push_back(pname);
this->WriteDSPHeader(fout); this->WriteDSPHeader(fout);
@ -412,7 +414,7 @@ void cmDSPMakefile::WriteDSPHeader(std::ostream& fout)
cmSystemTools::ReplaceString(line, "BUILD_INCLUDES", cmSystemTools::ReplaceString(line, "BUILD_INCLUDES",
m_IncludeOptions.c_str()); m_IncludeOptions.c_str());
cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME", cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME",
m_Makefile->GetLibraryName()); m_OutputLibName.c_str());
cmSystemTools::ReplaceString(line, cmSystemTools::ReplaceString(line,
"EXTRA_DEFINES", "EXTRA_DEFINES",
m_Makefile->GetDefineFlags()); m_Makefile->GetDefineFlags());
@ -445,3 +447,26 @@ void cmDSPMakefile::WriteDSPBuildRule(std::ostream& fout, const char* path)
<< path << "\n"; << path << "\n";
fout << "# End Source File\n"; fout << "# End Source File\n";
} }
bool cmDSPMakefile::NeedsDependencies(const char* dspname)
{
if(strcmp(m_Makefile->GetLibraryName(), dspname) == 0)
{
// only shared libs need depend info
const char* cacheValue
= cmCacheManager::GetInstance()->GetCacheValue("BUILD_SHARED_LIBS");
if(cacheValue && strcmp(cacheValue,"0"))
{
return true;
}
else
{
return false;
}
}
// must be an executable so it needs depends
return true;
}

View File

@ -61,7 +61,7 @@ public:
{ {
return m_Makefile; return m_Makefile;
} }
bool NeedsDependencies(const char* dspname);
private: private:
std::string m_DSPHeaderTemplate; std::string m_DSPHeaderTemplate;
std::string m_DSPFooterTemplate; std::string m_DSPFooterTemplate;
@ -86,6 +86,7 @@ private:
std::string m_IncludeOptions; std::string m_IncludeOptions;
std::string m_LibraryOptions; std::string m_LibraryOptions;
std::string m_OutputLibName;
cmMakefile* m_Makefile; cmMakefile* m_Makefile;
BuildType m_BuildType; BuildType m_BuildType;
std::vector<std::string> m_Configurations; std::vector<std::string> m_Configurations;

View File

@ -73,6 +73,7 @@ void cmDSPMakefile::OutputDSPFile()
m_LibraryOptions += "/$(OUTDIR)\" "; m_LibraryOptions += "/$(OUTDIR)\" ";
} }
m_LibraryOptions += "/STACK:10000000 "; m_LibraryOptions += "/STACK:10000000 ";
m_OutputLibName = m_Makefile->GetLibraryName();
// Create the DSP or set of DSP's for libraries and executables // Create the DSP or set of DSP's for libraries and executables
if(strlen(m_Makefile->GetLibraryName()) != 0) if(strlen(m_Makefile->GetLibraryName()) != 0)
@ -115,9 +116,10 @@ void cmDSPMakefile::CreateExecutableDSPFiles()
} }
else else
{ {
m_Makefile->SetLibraryName(classfile.m_ClassName.c_str()); // m_Makefile->SetLibraryName(classfile.m_ClassName.c_str());
this->SetBuildType(EXECUTABLE); this->SetBuildType(EXECUTABLE);
std::string pname = m_Makefile->GetLibraryName(); m_OutputLibName = classfile.m_ClassName;
std::string pname = classfile.m_ClassName.c_str(); //m_Makefile->GetLibraryName();
m_CreatedProjectNames.push_back(pname); m_CreatedProjectNames.push_back(pname);
this->WriteDSPHeader(fout); this->WriteDSPHeader(fout);
@ -412,7 +414,7 @@ void cmDSPMakefile::WriteDSPHeader(std::ostream& fout)
cmSystemTools::ReplaceString(line, "BUILD_INCLUDES", cmSystemTools::ReplaceString(line, "BUILD_INCLUDES",
m_IncludeOptions.c_str()); m_IncludeOptions.c_str());
cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME", cmSystemTools::ReplaceString(line, "OUTPUT_LIBNAME",
m_Makefile->GetLibraryName()); m_OutputLibName.c_str());
cmSystemTools::ReplaceString(line, cmSystemTools::ReplaceString(line,
"EXTRA_DEFINES", "EXTRA_DEFINES",
m_Makefile->GetDefineFlags()); m_Makefile->GetDefineFlags());
@ -445,3 +447,26 @@ void cmDSPMakefile::WriteDSPBuildRule(std::ostream& fout, const char* path)
<< path << "\n"; << path << "\n";
fout << "# End Source File\n"; fout << "# End Source File\n";
} }
bool cmDSPMakefile::NeedsDependencies(const char* dspname)
{
if(strcmp(m_Makefile->GetLibraryName(), dspname) == 0)
{
// only shared libs need depend info
const char* cacheValue
= cmCacheManager::GetInstance()->GetCacheValue("BUILD_SHARED_LIBS");
if(cacheValue && strcmp(cacheValue,"0"))
{
return true;
}
else
{
return false;
}
}
// must be an executable so it needs depends
return true;
}

View File

@ -61,7 +61,7 @@ public:
{ {
return m_Makefile; return m_Makefile;
} }
bool NeedsDependencies(const char* dspname);
private: private:
std::string m_DSPHeaderTemplate; std::string m_DSPHeaderTemplate;
std::string m_DSPFooterTemplate; std::string m_DSPFooterTemplate;
@ -86,6 +86,7 @@ private:
std::string m_IncludeOptions; std::string m_IncludeOptions;
std::string m_LibraryOptions; std::string m_LibraryOptions;
std::string m_OutputLibName;
cmMakefile* m_Makefile; cmMakefile* m_Makefile;
BuildType m_BuildType; BuildType m_BuildType;
std::vector<std::string> m_Configurations; std::vector<std::string> m_Configurations;

View File

@ -126,7 +126,7 @@ void cmDSWMakefile::WriteProject(std::ostream& fout,
std::vector<std::string>::iterator i, end; std::vector<std::string>::iterator i, end;
i = project->GetMakefile()->GetLinkLibraries().begin(); i = project->GetMakefile()->GetLinkLibraries().begin();
end = project->GetMakefile()->GetLinkLibraries().end(); end = project->GetMakefile()->GetLinkLibraries().end();
if(project->GetBuildType() != cmDSPMakefile::STATIC_LIBRARY) if(project->NeedsDependencies(dspname))
{ {
for(;i!= end; ++i) for(;i!= end; ++i)
{ {

View File

@ -126,7 +126,7 @@ void cmDSWMakefile::WriteProject(std::ostream& fout,
std::vector<std::string>::iterator i, end; std::vector<std::string>::iterator i, end;
i = project->GetMakefile()->GetLinkLibraries().begin(); i = project->GetMakefile()->GetLinkLibraries().begin();
end = project->GetMakefile()->GetLinkLibraries().end(); end = project->GetMakefile()->GetLinkLibraries().end();
if(project->GetBuildType() != cmDSPMakefile::STATIC_LIBRARY) if(project->NeedsDependencies(dspname))
{ {
for(;i!= end; ++i) for(;i!= end; ++i)
{ {