diff options
author | Ed Branch <brance@mail.utexas.edu> | 2017-01-14 02:01:17 (GMT) |
---|---|---|
committer | Ed Branch <brance@mail.utexas.edu> | 2017-01-14 02:02:16 (GMT) |
commit | 7c8ab7ddc8944152a1344c43acbb8c57fa2d398a (patch) | |
tree | e74c16ab04cd0961e5ca032ba99c45087dbd0dec /Source/cmAddCustomTargetCommand.cxx | |
parent | eee51e24d2290771ad3dded566ef897243f21331 (diff) | |
download | CMake-7c8ab7ddc8944152a1344c43acbb8c57fa2d398a.zip CMake-7c8ab7ddc8944152a1344c43acbb8c57fa2d398a.tar.gz CMake-7c8ab7ddc8944152a1344c43acbb8c57fa2d398a.tar.bz2 |
add_custom_{command,target}: Add COMMAND_EXPAND_LISTS option
This option allows lists generated by generator expressions to be expanded.
Closes: #15935
Diffstat (limited to 'Source/cmAddCustomTargetCommand.cxx')
-rw-r--r-- | Source/cmAddCustomTargetCommand.cxx | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmAddCustomTargetCommand.cxx b/Source/cmAddCustomTargetCommand.cxx index 56f33b4..0d01493 100644 --- a/Source/cmAddCustomTargetCommand.cxx +++ b/Source/cmAddCustomTargetCommand.cxx @@ -47,6 +47,7 @@ bool cmAddCustomTargetCommand::InitialPass( std::string working_directory; bool verbatim = false; bool uses_terminal = false; + bool command_expand_lists = false; std::string comment_buffer; const char* comment = CM_NULLPTR; std::vector<std::string> sources; @@ -90,6 +91,9 @@ bool cmAddCustomTargetCommand::InitialPass( } else if (copy == "USES_TERMINAL") { doing = doing_nothing; uses_terminal = true; + } else if (copy == "COMMAND_EXPAND_LISTS") { + doing = doing_nothing; + command_expand_lists = true; } else if (copy == "COMMENT") { doing = doing_comment; } else if (copy == "COMMAND") { @@ -221,12 +225,19 @@ bool cmAddCustomTargetCommand::InitialPass( "USES_TERMINAL may not be specified without any COMMAND"); return true; } + if (commandLines.empty() && command_expand_lists) { + this->Makefile->IssueMessage( + cmake::FATAL_ERROR, + "COMMAND_EXPAND_LISTS may not be specified without any COMMAND"); + return true; + } // Add the utility target to the makefile. bool escapeOldStyle = !verbatim; cmTarget* target = this->Makefile->AddUtilityCommand( targetName, excludeFromAll, working_directory.c_str(), byproducts, depends, - commandLines, escapeOldStyle, comment, uses_terminal); + commandLines, escapeOldStyle, comment, uses_terminal, + command_expand_lists); // Add additional user-specified source files to the target. target->AddSources(sources); |