소스 검색

ExternalProject: Ensure svn --trust-server-cert has dependent options

If the --trust-server-cert option is given to svn without the
--non-interactive option, the command fails with an error.
Previously, --non-interactive was always added, but
b1c2cb0436a (ExternalProject: Make SVN interactive with
USES_TERMINAL_{DOWNLOAD,UPDATE}, 2022-05-06) changed
the behavior to only add it if the relevant USES_TERMINAL_...
option was set to true.

Fixes: #25197
Craig Scott 2 년 전
부모
커밋
a1509658a0
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      Modules/ExternalProject.cmake

+ 4 - 2
Modules/ExternalProject.cmake

@@ -2869,7 +2869,8 @@ function(_ep_add_download_command name)
       TARGET ${name}
       PROPERTY _EP_USES_TERMINAL_DOWNLOAD
     )
-    if(uses_terminal)
+    # 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")
@@ -3357,7 +3358,8 @@ function(_ep_add_update_command name)
     get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
     get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
     get_property(uses_terminal TARGET ${name} PROPERTY _EP_USES_TERMINAL_UPDATE)
-    if(uses_terminal)
+    # 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")