summaryrefslogtreecommitdiffstats
path: root/Source/cmMakefile.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmMakefile.h')
-rw-r--r--Source/cmMakefile.h325
1 files changed, 159 insertions, 166 deletions
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index fa5e9b4..c665b1f 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -31,11 +31,11 @@
#include <cmsys/RegularExpression.hxx>
#include <cmsys/auto_ptr.hxx>
#if defined(CMAKE_BUILD_WITH_CMAKE)
-# ifdef CMake_HAVE_CXX11_UNORDERED_MAP
-# include <unordered_map>
-# else
-# include <cmsys/hash_map.hxx>
-# endif
+#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
+#include <unordered_map>
+#else
+#include <cmsys/hash_map.hxx>
+#endif
#endif
#include <stack>
@@ -66,7 +66,7 @@ public:
/* Mark a variable as used */
void MarkVariableAsUsed(const std::string& var);
/* return true if a variable has been initialized */
- bool VariableInitialized(const std::string& ) const;
+ bool VariableInitialized(const std::string&) const;
/**
* Construct an empty makefile.
@@ -97,8 +97,8 @@ public:
* Remove the function blocker whose scope ends with the given command.
* This returns ownership of the function blocker object.
*/
- cmsys::auto_ptr<cmFunctionBlocker>
- RemoveFunctionBlocker(cmFunctionBlocker* fb, const cmListFileFunction& lff);
+ cmsys::auto_ptr<cmFunctionBlocker> RemoveFunctionBlocker(
+ cmFunctionBlocker* fb, const cmListFileFunction& lff);
/**
* Try running cmake and building a file. This is used for dynalically
@@ -106,8 +106,7 @@ public:
*/
int TryCompile(const std::string& srcdir, const std::string& bindir,
const std::string& projectName, const std::string& targetName,
- bool fast,
- const std::vector<std::string> *cmakeArgs,
+ bool fast, const std::vector<std::string>* cmakeArgs,
std::string& output);
bool GetIsSourceFileTryCompile() const;
@@ -143,19 +142,14 @@ public:
const std::vector<std::string>& byproducts,
const std::vector<std::string>& depends,
const std::string& main_dependency,
- const cmCustomCommandLines& commandLines,
- const char* comment, const char* workingDir,
- bool replace = false,
- bool escapeOldStyle = true,
+ const cmCustomCommandLines& commandLines, const char* comment,
+ const char* workingDir, bool replace = false, bool escapeOldStyle = true,
bool uses_terminal = false);
cmSourceFile* AddCustomCommandToOutput(
- const std::string& output,
- const std::vector<std::string>& depends,
+ const std::string& output, const std::vector<std::string>& depends,
const std::string& main_dependency,
- const cmCustomCommandLines& commandLines,
- const char* comment, const char* workingDir,
- bool replace = false,
- bool escapeOldStyle = true,
+ const cmCustomCommandLines& commandLines, const char* comment,
+ const char* workingDir, bool replace = false, bool escapeOldStyle = true,
bool uses_terminal = false);
void AddCustomCommandOldStyle(const std::string& target,
const std::vector<std::string>& outputs,
@@ -173,16 +167,15 @@ public:
/** Create a new imported target with the name and type given. */
cmTarget* AddImportedTarget(const std::string& name,
- cmState::TargetType type,
- bool global);
+ cmState::TargetType type, bool global);
cmTarget* AddNewTarget(cmState::TargetType type, const std::string& name);
/**
* Add an executable to the build.
*/
- cmTarget* AddExecutable(const char *exename,
- const std::vector<std::string> &srcs,
+ cmTarget* AddExecutable(const char* exename,
+ const std::vector<std::string>& srcs,
bool excludeFromAll = false);
/**
@@ -193,28 +186,20 @@ public:
bool excludeFromAll,
const std::vector<std::string>& depends,
const char* workingDirectory,
- const char* command,
- const char* arg1=0,
- const char* arg2=0,
- const char* arg3=0,
- const char* arg4=0);
- cmTarget* AddUtilityCommand(const std::string& utilityName,
- bool excludeFromAll,
- const char* workingDirectory,
- const std::vector<std::string>& depends,
- const cmCustomCommandLines& commandLines,
- bool escapeOldStyle = true,
- const char* comment = 0,
- bool uses_terminal = false);
- cmTarget* AddUtilityCommand(const std::string& utilityName,
- bool excludeFromAll,
- const char* workingDirectory,
- const std::vector<std::string>& byproducts,
- const std::vector<std::string>& depends,
- const cmCustomCommandLines& commandLines,
- bool escapeOldStyle = true,
- const char* comment = 0,
- bool uses_terminal = false);
+ const char* command, const char* arg1 = 0,
+ const char* arg2 = 0, const char* arg3 = 0,
+ const char* arg4 = 0);
+ cmTarget* AddUtilityCommand(
+ const std::string& utilityName, bool excludeFromAll,
+ const char* workingDirectory, const std::vector<std::string>& depends,
+ const cmCustomCommandLines& commandLines, bool escapeOldStyle = true,
+ const char* comment = 0, bool uses_terminal = false);
+ cmTarget* AddUtilityCommand(
+ const std::string& utilityName, bool excludeFromAll,
+ const char* workingDirectory, const std::vector<std::string>& byproducts,
+ const std::vector<std::string>& depends,
+ const cmCustomCommandLines& commandLines, bool escapeOldStyle = true,
+ const char* comment = 0, bool uses_terminal = false);
/**
* Add a link library to the build.
@@ -229,8 +214,7 @@ public:
* Add a subdirectory to the build.
*/
void AddSubDirectory(const std::string& fullSrcDir,
- const std::string& fullBinDir,
- bool excludeFromAll,
+ const std::string& fullBinDir, bool excludeFromAll,
bool immediate);
void Configure();
@@ -243,7 +227,7 @@ public:
/**
* Add an include directory to the build.
*/
- void AddIncludeDirectories(const std::vector<std::string> &incs,
+ void AddIncludeDirectories(const std::vector<std::string>& incs,
bool before = false);
/**
@@ -253,8 +237,7 @@ public:
void AddDefinition(const std::string& name, const char* value);
///! Add a definition to this makefile and the global cmake cache.
void AddCacheDefinition(const std::string& name, const char* value,
- const char* doc,
- cmState::CacheEntryType type,
+ const char* doc, cmState::CacheEntryType type,
bool force = false);
/**
@@ -283,22 +266,22 @@ public:
* Set the name of the library.
*/
cmTarget* AddLibrary(const std::string& libname, cmState::TargetType type,
- const std::vector<std::string> &srcs,
- bool excludeFromAll = false);
+ const std::vector<std::string>& srcs,
+ bool excludeFromAll = false);
void AddAlias(const std::string& libname, const std::string& tgt);
#if defined(CMAKE_BUILD_WITH_CMAKE)
/**
* Add a root source group for consideration when adding a new source.
*/
- void AddSourceGroup(const std::string& name, const char* regex=0);
+ void AddSourceGroup(const std::string& name, const char* regex = 0);
/**
* Add a source group for consideration when adding a new source.
* name is tokenized.
*/
void AddSourceGroup(const std::vector<std::string>& name,
- const char* regex=0);
+ const char* regex = 0);
#endif
@@ -307,9 +290,9 @@ public:
* Set, Push, Pop policy values for CMake.
*/
bool SetPolicy(cmPolicies::PolicyID id, cmPolicies::PolicyStatus status);
- bool SetPolicy(const char *id, cmPolicies::PolicyStatus status);
+ bool SetPolicy(const char* id, cmPolicies::PolicyStatus status);
cmPolicies::PolicyStatus GetPolicyStatus(cmPolicies::PolicyID id) const;
- bool SetPolicyVersion(const char *version);
+ bool SetPolicyVersion(const char* version);
void RecordPolicies(cmPolicies::PolicyMap& pm);
//@}
@@ -319,6 +302,7 @@ public:
public:
PolicyPushPop(cmMakefile* m);
~PolicyPushPop();
+
private:
cmMakefile* Makefile;
};
@@ -328,7 +312,7 @@ public:
* Determine if the given context, name pair has already been reported
* in context of CMP0054.
*/
- bool HasCMP0054AlreadyBeenReported(const cmListFileContext &context) const;
+ bool HasCMP0054AlreadyBeenReported(const cmListFileContext& context) const;
bool IgnoreErrorsCMP0061() const;
@@ -355,39 +339,39 @@ public:
* in order to be considered as part of the depend information.
*/
void SetIncludeRegularExpression(const char* regex)
- {
- this->SetProperty("INCLUDE_REGULAR_EXPRESSION", regex);
- }
+ {
+ this->SetProperty("INCLUDE_REGULAR_EXPRESSION", regex);
+ }
const char* GetIncludeRegularExpression() const
- {
- return this->GetProperty("INCLUDE_REGULAR_EXPRESSION");
- }
+ {
+ return this->GetProperty("INCLUDE_REGULAR_EXPRESSION");
+ }
/**
* Set a regular expression that include files that are not found
* must match in order to be considered a problem.
*/
void SetComplainRegularExpression(const std::string& regex)
- {
- this->ComplainFileRegularExpression = regex;
- }
+ {
+ this->ComplainFileRegularExpression = regex;
+ }
const char* GetComplainRegularExpression() const
- {
- return this->ComplainFileRegularExpression.c_str();
- }
+ {
+ return this->ComplainFileRegularExpression.c_str();
+ }
/**
* Get the list of targets
*/
- cmTargets &GetTargets() { return this->Targets; }
+ cmTargets& GetTargets() { return this->Targets; }
/**
* Get the list of targets, const version
*/
- const cmTargets &GetTargets() const { return this->Targets; }
- const std::vector<cmTarget*> &GetOwnedImportedTargets() const
- {
- return this->ImportedTargetsOwned;
- }
+ const cmTargets& GetTargets() const { return this->Targets; }
+ const std::vector<cmTarget*>& GetOwnedImportedTargets() const
+ {
+ return this->ImportedTargetsOwned;
+ }
std::vector<cmTarget*> GetImportedTargets() const;
cmTarget* FindLocalNonAliasTarget(const std::string& name) const;
@@ -406,7 +390,7 @@ public:
/**
* Mark include directories as system directories.
*/
- void AddSystemIncludeDirectories(const std::set<std::string> &incs);
+ void AddSystemIncludeDirectories(const std::set<std::string>& incs);
/** Get a cmSourceFile pointer for a given source name, if the name is
* not found, then a null pointer is returned.
@@ -465,8 +449,7 @@ public:
/**
* Get a list of preprocessor define flags.
*/
- const char* GetDefineFlags() const
- {return this->DefineFlags.c_str();}
+ const char* GetDefineFlags() const { return this->DefineFlags.c_str(); }
/**
* Make sure CMake can write this file
@@ -478,22 +461,28 @@ public:
* Get the vector source groups.
*/
const std::vector<cmSourceGroup>& GetSourceGroups() const
- { return this->SourceGroups; }
+ {
+ return this->SourceGroups;
+ }
/**
* Get the source group
*/
- cmSourceGroup* GetSourceGroup(const std::vector<std::string>&name) const;
+ cmSourceGroup* GetSourceGroup(const std::vector<std::string>& name) const;
#endif
/**
* Get the vector of list files on which this makefile depends
*/
const std::vector<std::string>& GetListFiles() const
- { return this->ListFiles; }
+ {
+ return this->ListFiles;
+ }
///! When the file changes cmake will be re-run from the build system.
void AddCMakeDependFile(const std::string& file)
- { this->ListFiles.push_back(file);}
+ {
+ this->ListFiles.push_back(file);
+ }
void AddCMakeDependFilesFromUser();
std::string FormatListFileStack() const;
@@ -509,9 +498,13 @@ public:
* Get the vector of files created by this makefile
*/
const std::vector<std::string>& GetOutputFiles() const
- { return this->OutputFiles; }
+ {
+ return this->OutputFiles;
+ }
void AddCMakeOutputFile(const std::string& file)
- { this->OutputFiles.push_back(file);}
+ {
+ this->OutputFiles.push_back(file);
+ }
/**
* Expand all defined variables in the string.
@@ -520,12 +513,10 @@ public:
* entry in the this->Definitions map. Also \@var\@ is
* expanded to match autoconf style expansions.
*/
- const char *ExpandVariablesInString(std::string& source) const;
- const char *ExpandVariablesInString(std::string& source, bool escapeQuotes,
- bool noEscapes,
- bool atOnly = false,
- const char* filename = 0,
- long line = -1,
+ const char* ExpandVariablesInString(std::string& source) const;
+ const char* ExpandVariablesInString(std::string& source, bool escapeQuotes,
+ bool noEscapes, bool atOnly = false,
+ const char* filename = 0, long line = -1,
bool removeEmpty = false,
bool replaceAt = false) const;
@@ -533,8 +524,7 @@ public:
* Remove any remaining variables in the string. Anything with ${var} or
* \@var\@ will be removed.
*/
- void RemoveVariablesInString(std::string& source,
- bool atOnly = false) const;
+ void RemoveVariablesInString(std::string& source, bool atOnly = false) const;
/**
* Expand variables in the makefiles ivars such as link directories etc
@@ -551,17 +541,16 @@ public:
/**
* Copy file but change lines acording to ConfigureString
*/
- int ConfigureFile(const char* infile, const char* outfile,
- bool copyonly, bool atOnly, bool escapeQuotes,
+ int ConfigureFile(const char* infile, const char* outfile, bool copyonly,
+ bool atOnly, bool escapeQuotes,
const cmNewLineStyle& = cmNewLineStyle());
-
#if defined(CMAKE_BUILD_WITH_CMAKE)
/**
* find what source group this source is in
*/
cmSourceGroup* FindSourceGroup(const char* source,
- std::vector<cmSourceGroup> &groups) const;
+ std::vector<cmSourceGroup>& groups) const;
#endif
/**
@@ -574,18 +563,19 @@ public:
* succeeded or false if it failed.
*/
bool ExecuteCommand(const cmListFileFunction& lff,
- cmExecutionStatus &status);
+ cmExecutionStatus& status);
///! Enable support for named language, if nil then all languages are
- ///enabled.
- void EnableLanguage(std::vector<std::string>const& languages, bool optional);
+ /// enabled.
+ void EnableLanguage(std::vector<std::string> const& languages,
+ bool optional);
- cmState *GetState() const;
+ cmState* GetState() const;
- /**
- * Get the variable watch. This is used to determine when certain variables
- * are accessed.
- */
+/**
+ * Get the variable watch. This is used to determine when certain variables
+ * are accessed.
+ */
#ifdef CMAKE_BUILD_WITH_CMAKE
cmVariableWatch* GetVariableWatch() const;
#endif
@@ -608,21 +598,23 @@ public:
/**
* Get the instance
*/
- cmake *GetCMakeInstance() const;
+ cmake* GetCMakeInstance() const;
cmGlobalGenerator* GetGlobalGenerator() const;
/**
* Get all the source files this makefile knows about
*/
- const std::vector<cmSourceFile*> &GetSourceFiles() const
- {return this->SourceFiles;}
- std::vector<cmSourceFile*> &GetSourceFiles() {return this->SourceFiles;}
+ const std::vector<cmSourceFile*>& GetSourceFiles() const
+ {
+ return this->SourceFiles;
+ }
+ std::vector<cmSourceFile*>& GetSourceFiles() { return this->SourceFiles; }
/**
* Is there a source file that has the provided source file as an output?
* if so then return it
*/
- cmSourceFile *GetSourceFileWithOutput(const std::string& outName) const;
+ cmSourceFile* GetSourceFileWithOutput(const std::string& outName) const;
///! Add a new cmTest to the list of tests for this makefile.
cmTest* CreateTest(const std::string& testName);
@@ -638,11 +630,11 @@ public:
std::string GetModulesFile(const char* name) const;
///! Set/Get a property of this directory
- void SetProperty(const std::string& prop, const char *value);
- void AppendProperty(const std::string& prop, const char *value,
- bool asString=false);
- const char *GetProperty(const std::string& prop) const;
- const char *GetProperty(const std::string& prop, bool chain) const;
+ void SetProperty(const std::string& prop, const char* value);
+ void AppendProperty(const std::string& prop, const char* value,
+ bool asString = false);
+ const char* GetProperty(const std::string& prop) const;
+ const char* GetProperty(const std::string& prop, bool chain) const;
bool GetPropertyAsBool(const std::string& prop) const;
std::vector<std::string> GetPropertyKeys() const;
@@ -650,14 +642,24 @@ public:
void InitializeFromParent(cmMakefile* parent);
void AddInstallGenerator(cmInstallGenerator* g)
- { if(g) this->InstallGenerators.push_back(g); }
+ {
+ if (g)
+ this->InstallGenerators.push_back(g);
+ }
std::vector<cmInstallGenerator*>& GetInstallGenerators()
- { return this->InstallGenerators; }
+ {
+ return this->InstallGenerators;
+ }
void AddTestGenerator(cmTestGenerator* g)
- { if(g) this->TestGenerators.push_back(g); }
+ {
+ if (g)
+ this->TestGenerators.push_back(g);
+ }
const std::vector<cmTestGenerator*>& GetTestGenerators() const
- { return this->TestGenerators; }
+ {
+ return this->TestGenerators;
+ }
class FunctionPushPop
{
@@ -693,7 +695,7 @@ public:
void PopMacroScope(bool reportError);
void PushScope();
void PopScope();
- void RaiseScope(const std::string& var, const char *value);
+ void RaiseScope(const std::string& var, const char* value);
// push and pop loop scopes
void PushLoopBlockBarrier();
@@ -703,14 +705,17 @@ public:
class ScopePushPop
{
public:
- ScopePushPop(cmMakefile* m): Makefile(m) { this->Makefile->PushScope(); }
+ ScopePushPop(cmMakefile* m)
+ : Makefile(m)
+ {
+ this->Makefile->PushScope();
+ }
~ScopePushPop() { this->Makefile->PopScope(); }
private:
cmMakefile* Makefile;
};
- void IssueMessage(cmake::MessageType t,
- std::string const& text,
+ void IssueMessage(cmake::MessageType t, std::string const& text,
bool force = false) const;
/** Set whether or not to report a CMP0000 violation. */
@@ -723,29 +728,29 @@ public:
cmStringRange GetCompileDefinitionsEntries() const;
cmBacktraceRange GetCompileDefinitionsBacktraces() const;
- void AddQtUiFileWithOptions(cmSourceFile *sf);
+ void AddQtUiFileWithOptions(cmSourceFile* sf);
std::vector<cmSourceFile*> GetQtUiFilesWithOptions() const;
- std::set<std::string> const & GetSystemIncludeDirectories() const
- { return this->SystemIncludeDirectories; }
+ std::set<std::string> const& GetSystemIncludeDirectories() const
+ {
+ return this->SystemIncludeDirectories;
+ }
bool PolicyOptionalWarningEnabled(std::string const& var);
- bool AddRequiredTargetFeature(cmTarget *target,
- const std::string& feature,
- std::string *error = 0) const;
+ bool AddRequiredTargetFeature(cmTarget* target, const std::string& feature,
+ std::string* error = 0) const;
bool CompileFeatureKnown(cmTarget const* target, const std::string& feature,
- std::string& lang, std::string *error) const;
+ std::string& lang, std::string* error) const;
const char* CompileFeaturesAvailable(const std::string& lang,
- std::string *error) const;
+ std::string* error) const;
bool HaveStandardAvailable(cmTarget const* target, std::string const& lang,
- const std::string& feature) const;
+ const std::string& feature) const;
- bool IsLaterStandard(std::string const& lang,
- std::string const& lhs,
+ bool IsLaterStandard(std::string const& lang, std::string const& lhs,
std::string const& rhs);
void PushLoopBlock();
@@ -763,14 +768,15 @@ public:
void EnforceDirectoryLevelRules() const;
- void AddEvaluationFile(const std::string &inputFile,
- cmsys::auto_ptr<cmCompiledGeneratorExpression> outputName,
- cmsys::auto_ptr<cmCompiledGeneratorExpression> condition,
- bool inputIsContent);
+ void AddEvaluationFile(
+ const std::string& inputFile,
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> outputName,
+ cmsys::auto_ptr<cmCompiledGeneratorExpression> condition,
+ bool inputIsContent);
std::vector<cmGeneratorExpressionEvaluationFile*> GetEvaluationFiles() const;
- std::vector<cmExportBuildFileGenerator*>
- GetExportBuildFileGenerators() const;
+ std::vector<cmExportBuildFileGenerator*> GetExportBuildFileGenerators()
+ const;
void RemoveExportBuildFileGeneratorCMP0024(cmExportBuildFileGenerator* gen);
void AddExportBuildFileGenerator(cmExportBuildFileGenerator* gen);
@@ -830,7 +836,7 @@ protected:
std::vector<cmCommand*> FinalPassCommands;
cmGlobalGenerator* GlobalGenerator;
bool IsFunctionBlocked(const cmListFileFunction& lff,
- cmExecutionStatus &status);
+ cmExecutionStatus& status);
private:
cmMakefile(const cmMakefile& mf);
@@ -885,38 +891,25 @@ private:
class BuildsystemFileScope;
friend class BuildsystemFileScope;
-
// CMP0053 == old
cmake::MessageType ExpandVariablesInStringOld(
- std::string& errorstr,
- std::string& source,
- bool escapeQuotes,
- bool noEscapes,
- bool atOnly,
- const char* filename,
- long line,
- bool removeEmpty,
- bool replaceAt) const;
+ std::string& errorstr, std::string& source, bool escapeQuotes,
+ bool noEscapes, bool atOnly, const char* filename, long line,
+ bool removeEmpty, bool replaceAt) const;
// CMP0053 == new
cmake::MessageType ExpandVariablesInStringNew(
- std::string& errorstr,
- std::string& source,
- bool escapeQuotes,
- bool noEscapes,
- bool atOnly,
- const char* filename,
- long line,
- bool removeEmpty,
- bool replaceAt) const;
+ std::string& errorstr, std::string& source, bool escapeQuotes,
+ bool noEscapes, bool atOnly, const char* filename, long line,
+ bool removeEmpty, bool replaceAt) const;
/**
* Old version of GetSourceFileWithOutput(const std::string&) kept for
* backward-compatibility. It implements a linear search and support
* relative file paths. It is used as a fall back by
* GetSourceFileWithOutput(const std::string&).
*/
- cmSourceFile *LinearGetSourceFileWithOutput(const std::string& cname) const;
+ cmSourceFile* LinearGetSourceFileWithOutput(const std::string& cname) const;
- // A map for fast output to input look up.
+// A map for fast output to input look up.
#if defined(CMAKE_BUILD_WITH_CMAKE)
#ifdef CMake_HAVE_CXX11_UNORDERED_MAP
typedef std::unordered_map<std::string, cmSourceFile*> OutputToSourceMap;
@@ -935,10 +928,10 @@ private:
std::vector<cmSourceFile*> QtUiFilesWithOptions;
- bool AddRequiredTargetCFeature(cmTarget *target,
+ bool AddRequiredTargetCFeature(cmTarget* target,
const std::string& feature) const;
- bool AddRequiredTargetCxxFeature(cmTarget *target,
+ bool AddRequiredTargetCxxFeature(cmTarget* target,
const std::string& feature) const;
void CheckNeededCLanguage(const std::string& feature, bool& needC90,
@@ -947,9 +940,9 @@ private:
bool& needCxx11, bool& needCxx14) const;
bool HaveCStandardAvailable(cmTarget const* target,
- const std::string& feature) const;
+ const std::string& feature) const;
bool HaveCxxStandardAvailable(cmTarget const* target,
- const std::string& feature) const;
+ const std::string& feature) const;
void CheckForUnusedVariables() const;