浏览代码

Merge topic 'ep-svn-user-pass'

7e80415e79 ExternalProject: Reduce number of local variables for svn logic
e16f65be15 ExternalProject: Don't add SVN auth args if not set

Acked-by: Kitware Robot <[email protected]>
Acked-by: buildbot <[email protected]>
Merge-request: !9678
Brad King 1 年之前
父节点
当前提交
777d5d6a81
共有 1 个文件被更改,包括 29 次插入46 次删除
  1. 29 46
      Modules/ExternalProject/shared_internal_commands.cmake

+ 29 - 46
Modules/ExternalProject/shared_internal_commands.cmake

@@ -898,41 +898,33 @@ function(_ep_add_download_command name)
       message(FATAL_ERROR "error: could not find svn for checkout of ${name}")
     endif()
 
-    set(svn_revision   "${_EP_SVN_REVISION}")
-    set(svn_username   "${_EP_SVN_USERNAME}")
-    set(svn_password   "${_EP_SVN_PASSWORD}")
     set(svn_trust_cert "${_EP_SVN_TRUST_CERT}")
     set(uses_terminal  "${_EP_USES_TERMINAL_DOWNLOAD}")
-    # The --trust-server-cert option requires --non-interactive
-    if(uses_terminal AND NOT svn_trust_cert)
-      set(svn_interactive_args "")
-    else()
-      set(svn_interactive_args "--non-interactive")
-    endif()
 
     get_filename_component(src_name "${source_dir}" NAME)
     get_filename_component(work_dir "${source_dir}" PATH)
     set(comment "Performing download step (SVN checkout) for '${name}'")
-    set(svn_user_pw_args "")
-    if(DEFINED _EP_SVN_USERNAME)
-      set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
-    endif()
-    if(DEFINED _EP_SVN_PASSWORD)
-      set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
-    endif()
-    if(svn_trust_cert)
-      set(svn_trust_cert_args --trust-server-cert)
-    endif()
     set(cmd
       ${Subversion_SVN_EXECUTABLE}
       co
       ${svn_repository}
-      ${svn_revision}
-      ${svn_interactive_args}
-      ${svn_trust_cert_args}
-      ${svn_user_pw_args}
-      ${src_name}
+      ${_EP_SVN_REVISION}
     )
+    # The --trust-server-cert option requires --non-interactive
+    if(svn_trust_cert OR NOT uses_terminal)
+      list(APPEND cmd "--non-interactive")
+    endif()
+    if(svn_trust_cert)
+      list(APPEND cmd "--trust-server-cert")
+    endif()
+    if(DEFINED _EP_SVN_USERNAME)
+      list(APPEND cmd "--username=${_EP_SVN_USERNAME}")
+    endif()
+    if(DEFINED _EP_SVN_PASSWORD)
+      list(APPEND cmd "--password=${_EP_SVN_PASSWORD}")
+    endif()
+    list(APPEND cmd ${src_name})
+
     if(arg_SCRIPT_FILE)
       _ep_add_script_commands(
         step_script_contents
@@ -1485,35 +1477,26 @@ function(_ep_add_update_command name)
     endif()
     set(work_dir ${source_dir})
     set(comment "Performing update step (SVN update) for '${name}'")
-    set(svn_revision   "${_EP_SVN_REVISION}")
-    set(svn_username   "${_EP_SVN_USERNAME}")
-    set(svn_password   "${_EP_SVN_PASSWORD}")
     set(svn_trust_cert "${_EP_SVN_TRUST_CERT}")
     set(uses_terminal  "${_EP_USES_TERMINAL_UPDATE}")
+    set(cmd
+      ${Subversion_SVN_EXECUTABLE}
+      up
+      ${_EP_SVN_REVISION}
+    )
     # The --trust-server-cert option requires --non-interactive
-    if(uses_terminal AND NOT svn_trust_cert)
-      set(svn_interactive_args "")
-    else()
-      set(svn_interactive_args "--non-interactive")
+    if(svn_trust_cert OR NOT uses_terminal)
+      list(APPEND cmd "--non-interactive")
     endif()
-    set(svn_user_pw_args "")
-    if(DEFINED svn_username)
-      set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
+    if(svn_trust_cert)
+      list(APPEND cmd --trust-server-cert)
     endif()
-    if(DEFINED svn_password)
-      set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
+    if(DEFINED _EP_SVN_USERNAME)
+      list(APPEND cmd "--username=${_EP_SVN_USERNAME}")
     endif()
-    if(svn_trust_cert)
-      set(svn_trust_cert_args --trust-server-cert)
+    if(DEFINED _EP_SVN_PASSWORD)
+      list(APPEND cmd "--password=${_EP_SVN_PASSWORD}")
     endif()
-    set(cmd
-      ${Subversion_SVN_EXECUTABLE}
-      up
-      ${svn_revision}
-      ${svn_interactive_args}
-      ${svn_trust_cert_args}
-      ${svn_user_pw_args}
-    )
     set(always 1)
 
     if(arg_SCRIPT_FILE)