diff options
author | Daniel Eiband <daniel.eiband@brainlab.com> | 2019-09-14 12:16:14 (GMT) |
---|---|---|
committer | Daniel Eiband <daniel.eiband@brainlab.com> | 2019-09-17 20:50:25 (GMT) |
commit | f1e846fddece96d76d4d6b53ff1ca8ed197af550 (patch) | |
tree | a146e9f6fb19a665c92e1dc02526dedb86610050 /Source | |
parent | 4926ab24542d2c9e644feee88efd4a96f8bcab97 (diff) | |
download | CMake-f1e846fddece96d76d4d6b53ff1ca8ed197af550.zip CMake-f1e846fddece96d76d4d6b53ff1ca8ed197af550.tar.gz CMake-f1e846fddece96d76d4d6b53ff1ca8ed197af550.tar.bz2 |
cmMakefile: Extract custom command validation method
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmMakefile.cxx | 27 | ||||
-rw-r--r-- | Source/cmMakefile.h | 2 |
2 files changed, 21 insertions, 8 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 564ac56..6462c26 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -821,6 +821,22 @@ void cmMakefile::ConfigureFinalPass() } } +bool cmMakefile::ValidateCustomCommand( + const cmCustomCommandLines& commandLines) const +{ + // TODO: More strict? + for (cmCustomCommandLine const& cl : commandLines) { + if (!cl.empty() && !cl[0].empty() && cl[0][0] == '"') { + std::ostringstream e; + e << "COMMAND may not contain literal quotes:\n " << cl[0] << "\n"; + this->IssueMessage(MessageType::FATAL_ERROR, e.str()); + return false; + } + } + + return true; +} + void cmMakefile::AddCustomCommandToTarget( const std::string& target, const std::vector<std::string>& byproducts, const std::vector<std::string>& depends, @@ -959,14 +975,9 @@ cmSourceFile* cmMakefile::AddCustomCommandToOutput( return nullptr; } - // Validate custom commands. TODO: More strict? - for (cmCustomCommandLine const& cl : commandLines) { - if (!cl.empty() && !cl[0].empty() && cl[0][0] == '"') { - std::ostringstream e; - e << "COMMAND may not contain literal quotes:\n " << cl[0] << "\n"; - this->IssueMessage(MessageType::FATAL_ERROR, e.str()); - return nullptr; - } + // Validate custom commands. + if (!this->ValidateCustomCommand(commandLines)) { + return nullptr; } // Always create the output sources and mark them generated. diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h index 28f5452..4a1af7d 100644 --- a/Source/cmMakefile.h +++ b/Source/cmMakefile.h @@ -1067,6 +1067,8 @@ private: bool atOnly, const char* filename, long line, bool replaceAt) const; + bool ValidateCustomCommand(const cmCustomCommandLines& commandLines) const; + void CreateGeneratedSources(const std::vector<std::string>& outputs); /** |