ENH: removed unused rules from targets for VS
This commit is contained in:
parent
161524581f
commit
00d2546664
@ -126,47 +126,7 @@ void cmLocalVisualStudio6Generator::OutputDSPFile()
|
||||
target.TraceVSDependencies(target.GetName(), this->Makefile);
|
||||
}
|
||||
}
|
||||
// now for all custom commands that are not used directly in a
|
||||
// target, add them to all targets in the current directory or
|
||||
// makefile
|
||||
std::vector<cmSourceFile*> & classesmf = this->Makefile->GetSourceFiles();
|
||||
for(std::vector<cmSourceFile*>::const_iterator i = classesmf.begin();
|
||||
i != classesmf.end(); i++)
|
||||
{
|
||||
if(cmCustomCommand* cc = (*i)->GetCustomCommand())
|
||||
{
|
||||
if(!cc->IsUsed())
|
||||
{
|
||||
for(cmTargets::iterator l = tgts.begin();
|
||||
l != tgts.end(); l++)
|
||||
{
|
||||
if ((l->second.GetType() != cmTarget::INSTALL_FILES)
|
||||
&& (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)
|
||||
&& (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0)
|
||||
&& (strcmp(l->first.c_str(), "ALL_BUILD") != 0)
|
||||
&& (strcmp(l->first.c_str(), "RUN_TESTS") != 0)
|
||||
&& (strcmp(l->first.c_str(), "INSTALL") != 0))
|
||||
{
|
||||
cmTarget& target = l->second;
|
||||
bool sameAsTarget = false;
|
||||
// make sure we don't add a custom command that depends on
|
||||
// this target
|
||||
for(unsigned int k =0; k < cc->GetDepends().size(); k++)
|
||||
{
|
||||
if(cmSystemTools::GetFilenameName(cc->GetDepends()[k]) == target.GetFullName())
|
||||
{
|
||||
sameAsTarget = true;
|
||||
}
|
||||
}
|
||||
if(!sameAsTarget)
|
||||
{
|
||||
target.GetSourceFiles().push_back(*i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// build any targets
|
||||
for(cmTargets::iterator l = tgts.begin();
|
||||
l != tgts.end(); l++)
|
||||
|
@ -93,10 +93,6 @@ void cmLocalVisualStudio7Generator::OutputVCProjFile()
|
||||
// clear project names
|
||||
this->CreatedProjectNames.clear();
|
||||
|
||||
#if 1
|
||||
// TODO: This block should be moved to a central location for all
|
||||
// generators. It is duplicated in every generator.
|
||||
|
||||
// Call TraceVSDependencies on all targets
|
||||
cmTargets &tgts = this->Makefile->GetTargets();
|
||||
for(cmTargets::iterator l = tgts.begin();
|
||||
@ -122,70 +118,7 @@ void cmLocalVisualStudio7Generator::OutputVCProjFile()
|
||||
target.TraceVSDependencies(target.GetName(), this->Makefile);
|
||||
}
|
||||
}
|
||||
// now for all custom commands that are not used directly in a
|
||||
// target, add them to all targets in the current directory or
|
||||
// makefile
|
||||
std::vector<cmSourceFile*> & classesmf = this->Makefile->GetSourceFiles();
|
||||
for(std::vector<cmSourceFile*>::const_iterator i = classesmf.begin();
|
||||
i != classesmf.end(); i++)
|
||||
{
|
||||
if(cmCustomCommand* cc = (*i)->GetCustomCommand())
|
||||
{
|
||||
// while we are at it, if it is a .rule file then for visual studio 7 we
|
||||
// must generate it so that depend information works correctly
|
||||
if ((*i)->GetSourceExtension() == "rule")
|
||||
{
|
||||
std::string source = (*i)->GetFullPath();
|
||||
if(!cmSystemTools::FileExists(source.c_str()))
|
||||
{
|
||||
cmSystemTools::ReplaceString(source, "$(IntDir)/", "");
|
||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||
std::ofstream fout(source.c_str(),
|
||||
std::ios::binary | std::ios::out | std::ios::trunc);
|
||||
#else
|
||||
std::ofstream fout(source.c_str(),
|
||||
std::ios::out | std::ios::trunc);
|
||||
#endif
|
||||
if(fout)
|
||||
{
|
||||
fout.write("# generated from CMake",22);
|
||||
fout.flush();
|
||||
fout.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!cc->IsUsed())
|
||||
{
|
||||
for(cmTargets::iterator l = tgts.begin();
|
||||
l != tgts.end(); l++)
|
||||
{
|
||||
if ((l->second.GetType() != cmTarget::INSTALL_FILES)
|
||||
&& (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)
|
||||
&& (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0)
|
||||
&& (strcmp(l->first.c_str(), "ALL_BUILD") != 0)
|
||||
&& (strcmp(l->first.c_str(), CMAKE_CHECK_BUILD_SYSTEM_TARGET) != 0))
|
||||
{
|
||||
cmTarget& target = l->second;
|
||||
bool sameAsTarget = false;
|
||||
// make sure we don't add a custom command that depends on
|
||||
// this target
|
||||
for(unsigned int k =0; k < cc->GetDepends().size(); k++)
|
||||
{
|
||||
if(cmSystemTools::GetFilenameName(cc->GetDepends()[k]) == target.GetFullName())
|
||||
{
|
||||
sameAsTarget = true;
|
||||
}
|
||||
}
|
||||
if(!sameAsTarget)
|
||||
{
|
||||
target.GetSourceFiles().push_back(*i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
for(cmTargets::iterator l = tgts.begin();
|
||||
l != tgts.end(); l++)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user