ExternalProject: Avoid adding empty touch command on "ALWAYS" steps

The problem fixed by commit c0b749cf62 (ExternalProject: Always add a
command to a step, 2014-11-05, v3.2.0-rc1~402^2~3) may occur for an
empty `COMMAND ${touch}` too, so avoid specifying any `COMMAND` at all
if there is no touch command.
This commit is contained in:
Antonio Caggiano
2023-05-10 11:46:07 +02:00
committed by Brad King
parent 65430031a6
commit 3bf0830e44

View File

@@ -2447,7 +2447,7 @@ function(ExternalProject_Add_Step name step)
PROPERTY _EP_${step}_ALWAYS
)
if(always)
set(touch)
set(maybe_COMMAND_touch "")
# Mark stamp files for all configs as SYMBOLIC since we do not create them.
# Remove any existing stamp in case the option changed in an existing tree.
get_property(_isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
@@ -2469,7 +2469,7 @@ function(ExternalProject_Add_Step name step)
file(REMOVE ${stamp_file})
endif()
else()
set(touch ${CMAKE_COMMAND} -E touch ${stamp_file})
set(maybe_COMMAND_touch "COMMAND \${CMAKE_COMMAND} -E touch \${stamp_file}")
endif()
# Wrap with log script?
@@ -2497,7 +2497,7 @@ function(ExternalProject_Add_Step name step)
BYPRODUCTS \${byproducts}
COMMENT \${comment}
COMMAND ${__cmdQuoted}
COMMAND \${touch}
${maybe_COMMAND_touch}
DEPENDS \${depends}
WORKING_DIRECTORY \${work_dir}
VERBATIM