ENH: Added options CMAKE_SKIP_PREPROCESSED_SOURCE_RULES and CMAKE_SKIP_ASSEMBLY_SOURCE_RULES to allow projects to disable generation of .E and .S rules.

This commit is contained in:
Brad King 2006-08-09 09:56:52 -04:00
parent 3d6100d7c6
commit 8c94be3f18
2 changed files with 21 additions and 3 deletions

View File

@ -49,6 +49,8 @@ cmLocalUnixMakefileGenerator3::cmLocalUnixMakefileGenerator3()
this->UnixCD = true;
this->ForceVerboseMakefiles=false;
this->ColorMakefile = false;
this->SkipPreprocessedSourceRules = false;
this->SkipAssemblySourceRules = false;
}
//----------------------------------------------------------------------------
@ -76,9 +78,13 @@ void cmLocalUnixMakefileGenerator3::Generate()
// Setup our configuration variables for this directory.
this->ConfigureOutputPaths();
// Record whether color makefiles are enabled to avoid checking many
// Record whether some options are enabled to avoid checking many
// times later.
this->ColorMakefile = this->Makefile->IsOn("CMAKE_COLOR_MAKEFILE");
this->SkipPreprocessedSourceRules =
this->Makefile->IsOn("CMAKE_SKIP_PREPROCESSED_SOURCE_RULES");
this->SkipAssemblySourceRules =
this->Makefile->IsOn("CMAKE_SKIP_ASSEMBLY_SOURCE_RULES");
// Generate the rule files for each target.
cmTargets& targets = this->Makefile->GetTargets();

View File

@ -212,8 +212,14 @@ public:
/** Get whether to create rules to generate preprocessed and
assembly sources. This could be converted to a variable lookup
later. */
bool GetCreatePreprocessedSourceRules() { return true; }
bool GetCreateAssemblySourceRules() { return true; }
bool GetCreatePreprocessedSourceRules()
{
return !this->SkipPreprocessedSourceRules;
}
bool GetCreateAssemblySourceRules()
{
return !this->SkipAssemblySourceRules;
}
protected:
// these two methods just compute reasonable values for LibraryOutputPath
@ -324,6 +330,12 @@ private:
beginning of generation to avoid many duplicate lookups. */
bool ColorMakefile;
/* Copy the setting of CMAKE_SKIP_PREPROCESSED_SOURCE_RULES and
CMAKE_SKIP_ASSEMBLY_SOURCE_RULES at the beginning of generation to
avoid many duplicate lookups. */
bool SkipPreprocessedSourceRules;
bool SkipAssemblySourceRules;
std::map<cmStdString,std::vector<cmTarget *> > LocalObjectFiles;
/* does the work for each target */