summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmLocalGenerator.h')
-rw-r--r--Source/cmLocalGenerator.h87
1 files changed, 47 insertions, 40 deletions
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 2e05804..4d62833 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -106,11 +106,12 @@ public:
*/
enum RelativeRoot { NONE, FULL, HOME, START, HOME_OUTPUT, START_OUTPUT };
enum OutputFormat { UNCHANGED, MAKEFILE, SHELL, RESPONSE };
- std::string ConvertToOutputFormat(const char* source, OutputFormat output);
- std::string Convert(const char* remote, RelativeRoot local,
+ std::string ConvertToOutputFormat(const std::string& source,
+ OutputFormat output);
+ std::string Convert(const std::string& remote, RelativeRoot local,
OutputFormat output = UNCHANGED,
bool optional = false);
- std::string Convert(RelativeRoot remote, const char* local,
+ std::string Convert(RelativeRoot remote, const std::string& local,
OutputFormat output = UNCHANGED,
bool optional = false);
@@ -125,7 +126,7 @@ public:
* remote path must use forward slashes and not already be escaped
* or quoted.
*/
- std::string ConvertToOptionallyRelativeOutputPath(const char* remote);
+ std::string ConvertToOptionallyRelativeOutputPath(const std::string& remote);
///! set/get the parent generator
cmLocalGenerator* GetParent(){return this->Parent;}
@@ -137,24 +138,26 @@ public:
void AddArchitectureFlags(std::string& flags, cmGeneratorTarget* target,
- const char *lang, const char* config);
+ const std::string&lang, const std::string& config);
- void AddLanguageFlags(std::string& flags, const char* lang,
- const char* config);
+ void AddLanguageFlags(std::string& flags, const std::string& lang,
+ const std::string& config);
void AddCMP0018Flags(std::string &flags, cmTarget* target,
- std::string const& lang, const char *config);
+ std::string const& lang, const std::string& config);
void AddVisibilityPresetFlags(std::string &flags, cmTarget* target,
- const char *lang);
- void AddConfigVariableFlags(std::string& flags, const char* var,
- const char* config);
+ const std::string& lang);
+ void AddConfigVariableFlags(std::string& flags, const std::string& var,
+ const std::string& config);
///! Append flags to a string.
virtual void AppendFlags(std::string& flags, const char* newFlags);
- virtual void AppendFlagEscape(std::string& flags, const char* rawFlag);
+ virtual void AppendFlagEscape(std::string& flags,
+ const std::string& rawFlag);
///! Get the include flags for the current makefile and language
std::string GetIncludeFlags(const std::vector<std::string> &includes,
cmGeneratorTarget* target,
- const char* lang, bool forResponseFile = false,
- const char *config = 0);
+ const std::string& lang,
+ bool forResponseFile = false,
+ const std::string& config = "");
/**
* Encode a list of preprocessor definitions for the compiler
@@ -175,10 +178,10 @@ public:
*/
void JoinDefines(const std::set<std::string>& defines,
std::string &definesString,
- const char* lang);
+ const std::string& lang);
/** Lookup and append options associated with a particular feature. */
- void AppendFeatureOptions(std::string& flags, const char* lang,
+ void AppendFeatureOptions(std::string& flags, const std::string& lang,
const char* feature);
/** \brief Get absolute path to dependency \a name
@@ -193,18 +196,18 @@ public:
* the source directory of this generator. This should only be
* used for dependencies of custom commands.
*/
- bool GetRealDependency(const char* name, const char* config,
+ bool GetRealDependency(const std::string& name, const std::string& config,
std::string& dep);
///! for existing files convert to output path and short path if spaces
- std::string ConvertToOutputForExisting(const char* remote,
+ std::string ConvertToOutputForExisting(const std::string& remote,
RelativeRoot local = START_OUTPUT,
OutputFormat format = SHELL);
/** For existing path identified by RelativeRoot convert to output
path and short path if spaces. */
std::string ConvertToOutputForExisting(RelativeRoot remote,
- const char* local = 0,
+ const std::string& local = "",
OutputFormat format = SHELL);
virtual std::string ConvertToIncludeReference(std::string const& path,
@@ -223,16 +226,17 @@ public:
/** Get the include flags for the current makefile and language. */
void GetIncludeDirectories(std::vector<std::string>& dirs,
cmGeneratorTarget* target,
- const char* lang = "C", const char *config = 0,
+ const std::string& lang = "C",
+ const std::string& config = "",
bool stripImplicitInclDirs = true);
void AddCompileOptions(std::string& flags, cmTarget* target,
- const char* lang, const char* config);
+ const std::string& lang, const std::string& config);
void AddCompileDefinitions(std::set<std::string>& defines,
cmTarget const* target,
- const char* config);
+ const std::string& config);
/** Compute the language used to compile the given source file. */
- const char* GetSourceFileLanguage(const cmSourceFile& source);
+ std::string GetSourceFileLanguage(const cmSourceFile& source);
// Fill the vector with the target names for the object files,
// preprocessed files and assembly files.
@@ -282,14 +286,14 @@ public:
system to replace make variable references. Optionally adjust
escapes for the special case of passing to the native echo
command. */
- std::string EscapeForShell(const char* str, bool makeVars = false,
+ std::string EscapeForShell(const std::string& str, bool makeVars = false,
bool forEcho = false);
/** Backwards-compatibility version of EscapeForShell. */
- std::string EscapeForShellOldStyle(const char* str);
+ std::string EscapeForShellOldStyle(const std::string& str);
/** Escape the given string as an argument in a CMake script. */
- static std::string EscapeForCMake(const char* str);
+ static std::string EscapeForCMake(const std::string& str);
enum FortranFormat
{
@@ -307,7 +311,8 @@ public:
* or quoted.
*/
std::string ConvertToRelativePath(const std::vector<std::string>& local,
- const char* remote, bool force=false);
+ const std::string& remote,
+ bool force=false);
/**
* Get the relative path from the generator output directory to a
@@ -335,14 +340,14 @@ public:
/**
* Generate a Mac OS X application bundle Info.plist file.
*/
- void GenerateAppleInfoPList(cmTarget* target, const char* targetName,
+ void GenerateAppleInfoPList(cmTarget* target, const std::string& targetName,
const char* fname);
/**
* Generate a Mac OS X framework Info.plist file.
*/
void GenerateFrameworkInfoPList(cmTarget* target,
- const char* targetName,
+ const std::string& targetName,
const char* fname);
/** Construct a comment for a custom command. */
std::string ConstructComment(const cmCustomCommand& cc,
@@ -382,17 +387,18 @@ protected:
std::string ExpandRuleVariable(std::string const& variable,
const RuleVariables& replaceValues);
- const char* GetRuleLauncher(cmTarget* target, const char* prop);
+ const char* GetRuleLauncher(cmTarget* target, const std::string& prop);
void InsertRuleLauncher(std::string& s, cmTarget* target,
- const char* prop);
+ const std::string& prop);
/** Convert a target to a utility target for unsupported
* languages of a generator */
- void AddBuildTargetRule(const char* llang, cmGeneratorTarget& target);
+ void AddBuildTargetRule(const std::string& llang,
+ cmGeneratorTarget& target);
///! add a custom command to build a .o file that is part of a target
void AddCustomCommandToCreateObject(const char* ofname,
- const char* lang,
+ const std::string& lang,
cmSourceFile& source,
cmGeneratorTarget& target);
// Create Custom Targets and commands for unsupported languages
@@ -400,14 +406,14 @@ protected:
// generator directly. Any targets containing files that are not
// of the types listed will be compiled as custom commands and added
// to a custom target.
- void CreateCustomTargetsAndCommands(std::set<cmStdString> const&);
+ void CreateCustomTargetsAndCommands(std::set<std::string> const&);
// Handle old-style install rules stored in the targets.
void GenerateTargetInstallRules(
- std::ostream& os, const char* config,
+ std::ostream& os, const std::string& config,
std::vector<std::string> const& configurationTypes);
- std::string& CreateSafeUniqueObjectFileName(const char* sin,
+ std::string& CreateSafeUniqueObjectFileName(const std::string& sin,
std::string const& dir_max);
void ComputeObjectMaxPath();
@@ -437,9 +443,9 @@ protected:
std::vector<std::string> StartOutputDirectoryComponents;
cmLocalGenerator* Parent;
std::vector<cmLocalGenerator*> Children;
- std::map<cmStdString, cmStdString> UniqueObjectNamesMap;
+ std::map<std::string, std::string> UniqueObjectNamesMap;
std::string::size_type ObjectPathMax;
- std::set<cmStdString> ObjectMaxPathViolations;
+ std::set<std::string> ObjectMaxPathViolations;
bool WindowsShell;
bool WindowsVSIDE;
bool WatcomWMake;
@@ -469,11 +475,12 @@ protected:
cmIML_INT_uint64_t BackwardsCompatibility;
bool BackwardsCompatibilityFinal;
private:
- std::string ConvertToOutputForExistingCommon(const char* remote,
+ std::string ConvertToOutputForExistingCommon(const std::string& remote,
std::string const& result,
OutputFormat format);
- void AddSharedFlags(std::string& flags, const char* lang, bool shared);
+ void AddSharedFlags(std::string& flags, const std::string& lang,
+ bool shared);
bool GetShouldUseOldFlags(bool shared, const std::string &lang) const;
void AddPositionIndependentFlags(std::string& flags, std::string const& l,
int targetType);