diff options
author | Brad King <brad.king@kitware.com> | 2009-02-10 13:51:15 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2009-02-10 13:51:15 (GMT) |
commit | b604b98c5690c49109ad464190c1b8a7562410b0 (patch) | |
tree | d477ac9d52d7328848deb4e460628deb775a29fd /Source/cmLocalGenerator.cxx | |
parent | c895d9f2e0dac609a8e3e126cc05a0400e9740a9 (diff) | |
download | CMake-b604b98c5690c49109ad464190c1b8a7562410b0.zip CMake-b604b98c5690c49109ad464190c1b8a7562410b0.tar.gz CMake-b604b98c5690c49109ad464190c1b8a7562410b0.tar.bz2 |
ENH: Define RULE_LAUNCH_* properties
This defines global, directory, and target properties
RULE_LAUNCH_COMPILE, RULE_LAUNCH_LINK, and RULE_LAUNCH_CUSTOM. Their
values specify 'launcher' command lines which are prefixed to compile,
link, and custom build rules by Makefile generators.
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r-- | Source/cmLocalGenerator.cxx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index c496686..8555064 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1034,6 +1034,8 @@ cmLocalGenerator::ExpandRuleVariables(std::string& s, { std::vector<std::string> enabledLanguages; this->GlobalGenerator->GetEnabledLanguages(enabledLanguages); + this->InsertRuleLauncher(s, replaceValues.CMTarget, + replaceValues.RuleLauncher); std::string::size_type start = s.find('<'); // no variables to expand if(start == s.npos) @@ -1076,6 +1078,32 @@ cmLocalGenerator::ExpandRuleVariables(std::string& s, } //---------------------------------------------------------------------------- +const char* cmLocalGenerator::GetRuleLauncher(cmTarget* target, + const char* prop) +{ + if(target) + { + return target->GetProperty(prop); + } + else + { + return this->Makefile->GetProperty(prop); + } +} + +//---------------------------------------------------------------------------- +void cmLocalGenerator::InsertRuleLauncher(std::string& s, cmTarget* target, + const char* prop) +{ + if(const char* val = this->GetRuleLauncher(target, prop)) + { + cmOStringStream wrapped; + wrapped << val << " " << s; + s = wrapped.str(); + } +} + +//---------------------------------------------------------------------------- std::string cmLocalGenerator::ConvertToOutputForExistingCommon(const char* remote, std::string const& result) |