Ninja: Omit custom commands with an empty COMMAND

Fixes: #21063
This commit is contained in:
Shannon Booth 2020-12-23 12:57:50 +13:00 committed by Brad King
parent c56d3bef3e
commit d43f4692e0
3 changed files with 13 additions and 1 deletions

View File

@ -557,9 +557,13 @@ void cmLocalNinjaGenerator::AppendCustomCommandLines(
std::string launcher = this->MakeCustomLauncher(ccg);
for (unsigned i = 0; i != ccg.GetNumberOfCommands(); ++i) {
std::string c = ccg.GetCommand(i);
if (c.empty()) {
continue;
}
cmdLines.push_back(launcher +
this->ConvertToOutputFormat(
ccg.GetCommand(i),
c,
gg->IsMultiConfig() ? cmOutputConverter::NINJAMULTI
: cmOutputConverter::SHELL));

View File

@ -582,3 +582,7 @@ set_target_properties(mac_fw PROPERTIES
)
add_custom_command(OUTPUT mac_fw.txt COMMAND ${CMAKE_COMMAND} -E touch mac_fw.txt DEPENDS mac_fw)
add_custom_target(drive_mac_fw ALL DEPENDS mac_fw.txt)
# Test empty COMMANDs are ommited
add_executable(empty_command empty_command.cxx)
add_custom_command(TARGET empty_command POST_BUILD COMMAND $<0:date>)

View File

@ -0,0 +1,4 @@
int main()
{
return 0;
}