BUG: Avoid adding unused rules to special targets like ALL_BUILD. Make sure project regeneration rules go only in desired targets.
This commit is contained in:
parent
bd0b829ffb
commit
916ea2bad2
|
@ -86,6 +86,12 @@ void cmGlobalVisualStudio8Generator::Generate()
|
|||
no_output, no_depends,
|
||||
no_working_directory,
|
||||
"echo", "Checking build system");
|
||||
cmTarget* tgt = mf->FindTarget(CMAKE_CHECK_BUILD_SYSTEM_TARGET);
|
||||
if(!tgt)
|
||||
{
|
||||
cmSystemTools::Error("Error adding target " CMAKE_CHECK_BUILD_SYSTEM_TARGET);
|
||||
continue;
|
||||
}
|
||||
|
||||
// Add a custom rule to re-run CMake if any input files changed.
|
||||
const char* suppRegenRule =
|
||||
|
@ -134,6 +140,14 @@ void cmGlobalVisualStudio8Generator::Generate()
|
|||
mf->AddCustomCommandToOutput(
|
||||
CMAKE_CHECK_BUILD_SYSTEM_TARGET ".vcproj.cmake", listFiles,
|
||||
no_main_dependency, commandLines, no_comment, no_working_directory, true);
|
||||
if(cmSourceFile* file = mf->GetSource(CMAKE_CHECK_BUILD_SYSTEM_TARGET ".vcproj.cmake.rule"))
|
||||
{
|
||||
tgt->GetSourceFiles().push_back(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmSystemTools::Error("Error adding rule for " CMAKE_CHECK_BUILD_SYSTEM_TARGET ".vcproj.cmake");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,7 +120,10 @@ void cmLocalVisualStudio6Generator::OutputDSPFile()
|
|||
{
|
||||
if ((l->second.GetType() != cmTarget::INSTALL_FILES)
|
||||
&& (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)
|
||||
&& (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0))
|
||||
&& (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;
|
||||
|
@ -264,6 +267,14 @@ void cmLocalVisualStudio6Generator::AddDSPBuildRule(cmTarget& tgt)
|
|||
const char* no_working_directory = 0;
|
||||
m_Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, makefileIn.c_str(),
|
||||
commandLines, no_comment, no_working_directory, true);
|
||||
if(cmSourceFile* file = m_Makefile->GetSource(makefileIn.c_str()))
|
||||
{
|
||||
tgt.GetSourceFiles().push_back(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmSystemTools::Error("Error adding rule for ", makefileIn.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -160,7 +160,11 @@ void cmLocalVisualStudio7Generator::OutputVCProjFile()
|
|||
{
|
||||
if ((l->second.GetType() != cmTarget::INSTALL_FILES)
|
||||
&& (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)
|
||||
&& (strncmp(l->first.c_str(), "INCLUDE_EXTERNAL_MSPROJECT", 26) != 0))
|
||||
&& (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)
|
||||
&& (strcmp(l->first.c_str(), CMAKE_CHECK_BUILD_SYSTEM_TARGET) != 0))
|
||||
{
|
||||
cmTarget& target = l->second;
|
||||
bool sameAsTarget = false;
|
||||
|
@ -268,6 +272,14 @@ void cmLocalVisualStudio7Generator::AddVCProjBuildRule(cmTarget& tgt)
|
|||
const char* no_comment = 0;
|
||||
m_Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, makefileIn.c_str(),
|
||||
commandLines, no_comment, no_working_directory, true);
|
||||
if(cmSourceFile* file = m_Makefile->GetSource(makefileIn.c_str()))
|
||||
{
|
||||
tgt.GetSourceFiles().push_back(file);
|
||||
}
|
||||
else
|
||||
{
|
||||
cmSystemTools::Error("Error adding rule for ", makefileIn.c_str());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue