summaryrefslogtreecommitdiffstats
path: root/Modules/ExternalProject.cmake
diff options
context:
space:
mode:
authorDavid Cole <david.cole@kitware.com>2011-04-11 20:34:58 (GMT)
committerDavid Cole <david.cole@kitware.com>2011-04-11 20:34:58 (GMT)
commit3a5a402a533b88e9f4810d07c1bfcb9e2c5abde4 (patch)
tree83ec5df3ee30308123040b4eabf4713de5e05798 /Modules/ExternalProject.cmake
parenta961ecdad0ec31bacb3f6abff83aa65f0b51a676 (diff)
downloadCMake-3a5a402a533b88e9f4810d07c1bfcb9e2c5abde4.zip
CMake-3a5a402a533b88e9f4810d07c1bfcb9e2c5abde4.tar.gz
CMake-3a5a402a533b88e9f4810d07c1bfcb9e2c5abde4.tar.bz2
ExternalProject: Add SVN_TRUST_CERT argument
Which adds --non-interactive and --trust-server-cert to the svn checkout and update command lines. This allows ExternalProject clients to pull from an https:// based svn server even though the server may not have a valid or trusted certificate. Caveat emptor: I would NOT recommend using this except as a short-term work-around. Rather, the server should have a valid, trusted certificate, or the client should be using "http" instead of "https".
Diffstat (limited to 'Modules/ExternalProject.cmake')
-rw-r--r--Modules/ExternalProject.cmake13
1 files changed, 11 insertions, 2 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake
index 390b8f9..c910a56 100644
--- a/Modules/ExternalProject.cmake
+++ b/Modules/ExternalProject.cmake
@@ -18,6 +18,7 @@
# [SVN_REVISION rev] # Revision to checkout from Subversion repo
# [SVN_USERNAME john ] # Username for Subversion checkout and update
# [SVN_PASSWORD doe ] # Password for Subversion checkout and update
+# [SVN_TRUST_CERT 1 ] # Trust the Subversion server site certificate
# [GIT_REPOSITORY url] # URL of git repo
# [GIT_TAG tag] # Git branch name, commit id or tag
# [URL /.../src.tgz] # Full path or URL of source
@@ -1026,6 +1027,7 @@ function(_ep_add_download_command name)
get_property(svn_revision TARGET ${name} PROPERTY _EP_SVN_REVISION)
get_property(svn_username TARGET ${name} PROPERTY _EP_SVN_USERNAME)
get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
+ get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
set(repository "${svn_repository} user=${svn_username} password=${svn_password}")
set(module)
@@ -1046,8 +1048,11 @@ function(_ep_add_download_command name)
if(svn_password)
set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
endif()
+ if(svn_trust_cert)
+ set(svn_trust_cert_args --non-interactive --trust-server-cert)
+ endif()
set(cmd ${Subversion_SVN_EXECUTABLE} co ${svn_repository} ${svn_revision}
- ${svn_user_pw_args} ${src_name})
+ ${svn_trust_cert_args} ${svn_user_pw_args} ${src_name})
list(APPEND depends ${stamp_dir}/${name}-svninfo.txt)
elseif(git_repository)
find_package(Git)
@@ -1191,6 +1196,7 @@ function(_ep_add_update_command name)
get_property(svn_revision TARGET ${name} PROPERTY _EP_SVN_REVISION)
get_property(svn_username TARGET ${name} PROPERTY _EP_SVN_USERNAME)
get_property(svn_password TARGET ${name} PROPERTY _EP_SVN_PASSWORD)
+ get_property(svn_trust_cert TARGET ${name} PROPERTY _EP_SVN_TRUST_CERT)
set(svn_user_pw_args "")
if(svn_username)
set(svn_user_pw_args ${svn_user_pw_args} "--username=${svn_username}")
@@ -1198,8 +1204,11 @@ function(_ep_add_update_command name)
if(svn_password)
set(svn_user_pw_args ${svn_user_pw_args} "--password=${svn_password}")
endif()
+ if(svn_trust_cert)
+ set(svn_trust_cert_args --non-interactive --trust-server-cert)
+ endif()
set(cmd ${Subversion_SVN_EXECUTABLE} up ${svn_revision}
- ${svn_user_pw_args})
+ ${svn_trust_cert_args} ${svn_user_pw_args})
set(always 1)
elseif(git_repository)
if(NOT GIT_EXECUTABLE)