diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmAddCustomTargetCommand.cxx | 19 | ||||
-rw-r--r-- | Source/cmAddCustomTargetCommand.h | 11 |
2 files changed, 25 insertions, 5 deletions
diff --git a/Source/cmAddCustomTargetCommand.cxx b/Source/cmAddCustomTargetCommand.cxx index 94854b1..b609bd2 100644 --- a/Source/cmAddCustomTargetCommand.cxx +++ b/Source/cmAddCustomTargetCommand.cxx @@ -55,6 +55,7 @@ bool cmAddCustomTargetCommand bool verbatim = false; std::string comment_buffer; const char* comment = 0; + std::vector<std::string> sources; // Keep track of parser state. enum tdoing { @@ -62,6 +63,7 @@ bool cmAddCustomTargetCommand doing_depends, doing_working_directory, doing_comment, + doing_source, doing_verbatim }; tdoing doing = doing_command; @@ -111,6 +113,10 @@ bool cmAddCustomTargetCommand currentLine.clear(); } } + else if(copy == "SOURCES") + { + doing = doing_source; + } else { switch (doing) @@ -128,6 +134,9 @@ bool cmAddCustomTargetCommand comment_buffer = copy; comment = comment_buffer.c_str(); break; + case doing_source: + sources.push_back(copy); + break; default: this->SetError("Wrong syntax. Unknown type of argument."); return false; @@ -164,9 +173,13 @@ bool cmAddCustomTargetCommand // Add the utility target to the makefile. bool escapeOldStyle = !verbatim; - this->Makefile->AddUtilityCommand(args[0].c_str(), excludeFromAll, - working_directory.c_str(), depends, - commandLines, escapeOldStyle, comment); + cmTarget* target = + this->Makefile->AddUtilityCommand(args[0].c_str(), excludeFromAll, + working_directory.c_str(), depends, + commandLines, escapeOldStyle, comment); + + // Add additional user-specified source files to the target. + target->AddSources(sources); return true; } diff --git a/Source/cmAddCustomTargetCommand.h b/Source/cmAddCustomTargetCommand.h index c988e63..9eef444 100644 --- a/Source/cmAddCustomTargetCommand.h +++ b/Source/cmAddCustomTargetCommand.h @@ -68,7 +68,8 @@ public: " [COMMAND command2 [args2...] ...]\n" " [DEPENDS depend depend depend ... ]\n" " [WORKING_DIRECTORY dir]\n" - " [COMMENT comment] [VERBATIM])\n" + " [COMMENT comment] [VERBATIM]\n" + " [SOURCES src1 [src2...]])\n" "Adds a target with the given name that executes the given commands. " "The target has no output file and is ALWAYS CONSIDERED OUT OF DATE " "even if the commands try to create a file with the name of the " @@ -94,7 +95,13 @@ public: "Use of VERBATIM is recommended as it enables correct behavior. " "When VERBATIM is not given the behavior is platform specific. " "In the future VERBATIM may be enabled by default. The only reason " - "it is an option is to preserve compatibility with older CMake code."; + "it is an option is to preserve compatibility with older CMake code." + "\n" + "The SOURCES option specifies additional source files to be included " + "in the custom target. " + "Specified source files will be added to IDE project files for " + "convenience in editing even if they have not build rules." + ; } cmTypeMacro(cmAddCustomTargetCommand, cmCommand); |