Browse Source

ExternalProject: Ensure keywords requiring an argument have one

Issue: #21089
Craig Scott 1 year ago
parent
commit
f5f80305ef
1 changed files with 13 additions and 7 deletions
  1. 13 7
      Modules/ExternalProject.cmake

+ 13 - 7
Modules/ExternalProject.cmake

@@ -2157,6 +2157,12 @@ function(ExternalProject_Add_Step name step)
     byproducts
   )
 
+  if(NOT "x${work_dir}" STREQUAL "x")
+    set(maybe_WORKING_DIRECTORY "WORKING_DIRECTORY [==[${work_dir}]==]")
+  else()
+    set(maybe_WORKING_DIRECTORY "")
+  endif()
+
   # Custom comment?
   get_property(comment_set
     TARGET ${name}
@@ -2176,9 +2182,9 @@ function(ExternalProject_Add_Step name step)
     PROPERTY _EP_${step}_USES_TERMINAL
   )
   if(uses_terminal)
-    set(uses_terminal USES_TERMINAL)
+    set(maybe_USES_TERMINAL USES_TERMINAL)
   else()
-    set(uses_terminal "")
+    set(maybe_USES_TERMINAL "")
   endif()
 
   # Run every time?
@@ -2245,14 +2251,14 @@ function(ExternalProject_Add_Step name step)
     add_custom_command(
       OUTPUT \${stamp_file}
       BYPRODUCTS \${byproducts}
-      COMMENT \${comment}
+      COMMENT [===[${comment}]===]
       COMMAND ${__cmdQuoted}
-      ${maybe_COMMAND_touch}
-      ${maybe_JOB_SERVER_AWARE}
       DEPENDS \${depends}
-      WORKING_DIRECTORY \${work_dir}
       VERBATIM
-      ${uses_terminal}
+      ${maybe_COMMAND_touch}
+      ${maybe_JOB_SERVER_AWARE}
+      ${maybe_WORKING_DIRECTORY}
+      ${maybe_USES_TERMINAL}
     )"
   )
   set_property(TARGET ${name} APPEND PROPERTY _EP_STEPS ${step})