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_output, no_depends,
|
||||||
no_working_directory,
|
no_working_directory,
|
||||||
"echo", "Checking build system");
|
"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.
|
// Add a custom rule to re-run CMake if any input files changed.
|
||||||
const char* suppRegenRule =
|
const char* suppRegenRule =
|
||||||
|
@ -134,6 +140,14 @@ void cmGlobalVisualStudio8Generator::Generate()
|
||||||
mf->AddCustomCommandToOutput(
|
mf->AddCustomCommandToOutput(
|
||||||
CMAKE_CHECK_BUILD_SYSTEM_TARGET ".vcproj.cmake", listFiles,
|
CMAKE_CHECK_BUILD_SYSTEM_TARGET ".vcproj.cmake", listFiles,
|
||||||
no_main_dependency, commandLines, no_comment, no_working_directory, true);
|
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)
|
if ((l->second.GetType() != cmTarget::INSTALL_FILES)
|
||||||
&& (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)
|
&& (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;
|
cmTarget& target = l->second;
|
||||||
bool sameAsTarget = false;
|
bool sameAsTarget = false;
|
||||||
|
@ -264,6 +267,14 @@ void cmLocalVisualStudio6Generator::AddDSPBuildRule(cmTarget& tgt)
|
||||||
const char* no_working_directory = 0;
|
const char* no_working_directory = 0;
|
||||||
m_Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, makefileIn.c_str(),
|
m_Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, makefileIn.c_str(),
|
||||||
commandLines, no_comment, no_working_directory, true);
|
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)
|
if ((l->second.GetType() != cmTarget::INSTALL_FILES)
|
||||||
&& (l->second.GetType() != cmTarget::INSTALL_PROGRAMS)
|
&& (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;
|
cmTarget& target = l->second;
|
||||||
bool sameAsTarget = false;
|
bool sameAsTarget = false;
|
||||||
|
@ -268,6 +272,14 @@ void cmLocalVisualStudio7Generator::AddVCProjBuildRule(cmTarget& tgt)
|
||||||
const char* no_comment = 0;
|
const char* no_comment = 0;
|
||||||
m_Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, makefileIn.c_str(),
|
m_Makefile->AddCustomCommandToOutput(dspname.c_str(), listFiles, makefileIn.c_str(),
|
||||||
commandLines, no_comment, no_working_directory, true);
|
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