summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorDaniel Eiband <daniel.eiband@brainlab.com>2019-09-12 21:20:13 (GMT)
committerBrad King <brad.king@kitware.com>2019-09-13 15:00:21 (GMT)
commit5d28e361b709a781a131cb9d9da73f04484eff54 (patch)
treee1fcb55ac14cc7f4d848646fd638b3b2cecaee20 /Source
parent4fb29850ad325b70fb412d4fd596c0a0d627ae8b (diff)
downloadCMake-5d28e361b709a781a131cb9d9da73f04484eff54.zip
CMake-5d28e361b709a781a131cb9d9da73f04484eff54.tar.gz
CMake-5d28e361b709a781a131cb9d9da73f04484eff54.tar.bz2
add_custom_command: Move append functionality into class cmMakefile
Diffstat (limited to 'Source')
-rw-r--r--Source/cmAddCustomCommandCommand.cxx12
-rw-r--r--Source/cmMakefile.cxx17
-rw-r--r--Source/cmMakefile.h4
3 files changed, 24 insertions, 9 deletions
diff --git a/Source/cmAddCustomCommandCommand.cxx b/Source/cmAddCustomCommandCommand.cxx
index 2a0db45..90317bd 100644
--- a/Source/cmAddCustomCommandCommand.cxx
+++ b/Source/cmAddCustomCommandCommand.cxx
@@ -13,7 +13,6 @@
#include "cmMakefile.h"
#include "cmMessageType.h"
#include "cmPolicies.h"
-#include "cmSourceFile.h"
#include "cmStringAlgorithms.h"
#include "cmSystemTools.h"
#include "cmTarget.h"
@@ -317,14 +316,9 @@ bool cmAddCustomCommandCommand(std::vector<std::string> const& args,
// Check for an append request.
if (append) {
- // Lookup an existing command.
- if (cmSourceFile* sf = mf.GetSourceFileWithOutput(output[0])) {
- if (cmCustomCommand* cc = sf->GetCustomCommand()) {
- cc->AppendCommands(commandLines);
- cc->AppendDepends(depends);
- cc->AppendImplicitDepends(implicit_depends);
- return true;
- }
+ if (mf.AppendCustomCommandToOutput(output[0], depends, implicit_depends,
+ commandLines)) {
+ return true;
}
// No command for this output exists.
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index ec2e646..000d84b 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -1111,6 +1111,23 @@ void cmMakefile::AddCustomCommandOldStyle(
}
}
+bool cmMakefile::AppendCustomCommandToOutput(
+ const std::string& output, const std::vector<std::string>& depends,
+ const cmImplicitDependsList& implicit_depends,
+ const cmCustomCommandLines& commandLines)
+{
+ // Lookup an existing command.
+ if (cmSourceFile* sf = this->GetSourceFileWithOutput(output)) {
+ if (cmCustomCommand* cc = sf->GetCustomCommand()) {
+ cc->AppendCommands(commandLines);
+ cc->AppendDepends(depends);
+ cc->AppendImplicitDepends(implicit_depends);
+ return true;
+ }
+ }
+ return false;
+}
+
cmTarget* cmMakefile::AddUtilityCommand(
const std::string& utilityName, TargetOrigin origin, bool excludeFromAll,
const std::vector<std::string>& depends, const char* workingDirectory,
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index f9031c1..8671bd7 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -185,6 +185,10 @@ public:
const std::string& source,
const cmCustomCommandLines& commandLines,
const char* comment);
+ bool AppendCustomCommandToOutput(
+ const std::string& output, const std::vector<std::string>& depends,
+ const cmImplicitDependsList& implicit_depends,
+ const cmCustomCommandLines& commandLines);
/**
* Add a define flag to the build.