summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
diff options
context:
space:
mode:
authorDaniel Eiband <daniel.eiband@brainlab.com>2019-10-17 13:40:09 (GMT)
committerDaniel Eiband <daniel.eiband@brainlab.com>2019-11-24 19:13:23 (GMT)
commitbf76a6b801597da424f1fe0f10adc0e8d559adc3 (patch)
treed4d9d2843633944af271b6718f89fc92b2064a07 /Source/cmMakefile.h
parentadc50529ac163889c0353756706a7ffddb4ed957 (diff)
downloadCMake-bf76a6b801597da424f1fe0f10adc0e8d559adc3.zip
CMake-bf76a6b801597da424f1fe0f10adc0e8d559adc3.tar.gz
CMake-bf76a6b801597da424f1fe0f10adc0e8d559adc3.tar.bz2
cmMakefile: Delay CheckTargetProperties and FinalPass to generate time
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r--Source/cmMakefile.h25
1 files changed, 13 insertions, 12 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 6e59494..83a99f6 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -49,6 +49,7 @@ class cmGeneratorExpressionEvaluationFile;
class cmGlobalGenerator;
class cmImplicitDependsList;
class cmInstallGenerator;
+class cmLocalGenerator;
class cmMessenger;
class cmSourceFile;
class cmState;
@@ -151,23 +152,19 @@ public:
bool EnforceUniqueName(std::string const& name, std::string& msg,
bool isCustom = false) const;
- using FinalAction = std::function<void(cmMakefile&)>;
+ using GeneratorAction =
+ std::function<void(cmLocalGenerator&, const cmListFileBacktrace&)>;
/**
- * Register an action that is executed during FinalPass
+ * Register an action that is executed during Generate
*/
- void AddFinalAction(FinalAction action);
+ void AddGeneratorAction(GeneratorAction action);
/**
- * Perform FinalPass, Library dependency analysis etc before output of the
- * makefile.
+ * Perform generate actions, Library dependency analysis etc before output of
+ * the makefile.
*/
- void ConfigureFinalPass();
-
- /**
- * run all FinalActions.
- */
- void FinalPass();
+ void Generate(cmLocalGenerator& lg);
/**
* Get the target for PRE_BUILD, PRE_LINK, or POST_BUILD commands.
@@ -1001,7 +998,6 @@ protected:
size_t ObjectLibrariesSourceGroupIndex;
#endif
- std::vector<FinalAction> FinalActions;
cmGlobalGenerator* GlobalGenerator;
bool IsFunctionBlocked(const cmListFileFunction& lff,
cmExecutionStatus& status);
@@ -1011,6 +1007,8 @@ private:
cmListFileBacktrace Backtrace;
int RecursionDepth;
+ void DoGenerate(cmLocalGenerator& lg);
+
void ReadListFile(cmListFile const& listFile,
const std::string& filenametoread);
@@ -1113,6 +1111,9 @@ private:
bool uses_terminal, bool command_expand_lists,
const std::string& job_pool);
+ std::vector<BT<GeneratorAction>> GeneratorActions;
+ bool GeneratorActionsInvoked = false;
+
/**
* See LinearGetSourceFileWithOutput for background information
*/