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);
|
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
|
// build any targets
|
||||||
for(cmTargets::iterator l = tgts.begin();
|
for(cmTargets::iterator l = tgts.begin();
|
||||||
l != tgts.end(); l++)
|
l != tgts.end(); l++)
|
||||||
|
@ -93,10 +93,6 @@ void cmLocalVisualStudio7Generator::OutputVCProjFile()
|
|||||||
// clear project names
|
// clear project names
|
||||||
this->CreatedProjectNames.clear();
|
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
|
// Call TraceVSDependencies on all targets
|
||||||
cmTargets &tgts = this->Makefile->GetTargets();
|
cmTargets &tgts = this->Makefile->GetTargets();
|
||||||
for(cmTargets::iterator l = tgts.begin();
|
for(cmTargets::iterator l = tgts.begin();
|
||||||
@ -122,70 +118,7 @@ void cmLocalVisualStudio7Generator::OutputVCProjFile()
|
|||||||
target.TraceVSDependencies(target.GetName(), this->Makefile);
|
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();
|
for(cmTargets::iterator l = tgts.begin();
|
||||||
l != tgts.end(); l++)
|
l != tgts.end(); l++)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user