diff options
author | Brad King <brad.king@kitware.com> | 2012-04-18 19:28:12 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-04-18 19:49:38 (GMT) |
commit | 369e3464beb8258ce5b2af8bcbe6b476fca379de (patch) | |
tree | 86ca6b0e9cb1f1b39462c50bd53df8398d457ed2 /Source/cmMakefile.cxx | |
parent | f9b758e91a9afa17123c5b81b5568ebbd52db598 (diff) | |
download | CMake-369e3464beb8258ce5b2af8bcbe6b476fca379de.zip CMake-369e3464beb8258ce5b2af8bcbe6b476fca379de.tar.gz CMake-369e3464beb8258ce5b2af8bcbe6b476fca379de.tar.bz2 |
Factor out custom command .rule file path generation
Add cmGlobalGenerator::GenerateRuleFile to compute a generator-specific
rule file location. This will allow specific generators to override the
location of .rule files without changing the behavior of other
generators.
Diffstat (limited to 'Source/cmMakefile.cxx')
-rw-r--r-- | Source/cmMakefile.cxx | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index f2865f6..17bb5ed 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -948,17 +948,11 @@ cmMakefile::AddCustomCommandToOutput(const std::vector<std::string>& outputs, // Generate a rule file if the main dependency is not available. if(!file) { + cmGlobalGenerator* gg = this->LocalGenerator->GetGlobalGenerator(); + // Construct a rule file associated with the first output produced. - std::string outName = outputs[0]; - outName += ".rule"; - const char* dir = - this->LocalGenerator->GetGlobalGenerator()-> - GetCMakeCFGIntDir(); - if(dir && dir[0] == '$') - { - cmSystemTools::ReplaceString(outName, dir, - cmake::GetCMakeFilesDirectory()); - } + std::string outName = gg->GenerateRuleFile(outputs[0]); + // Check if the rule file already exists. file = this->GetSource(outName.c_str()); if(file && file->GetCustomCommand() && !replace) |