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
b1c2cb0436 (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
This commit is contained in:
Craig Scott
2023-08-21 09:23:02 +10:00
parent dcdc80cdc7
commit a1509658a0

View File

@@ -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")