diff options
author | Brad King <brad.king@kitware.com> | 2011-03-08 19:22:35 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2011-03-08 19:22:35 (GMT) |
commit | 831fef8167cfdcc86dfb838f60ef9dd5ba864a72 (patch) | |
tree | eaf95f4e0e5babc8c0be8c5ef4663545af4f0c4d /Modules | |
parent | ba14c9225491d2f2a3edaca75bff3d8a7e92a090 (diff) | |
parent | 7f10b137e1e75a57346b566a8818718b7f851625 (diff) | |
download | CMake-831fef8167cfdcc86dfb838f60ef9dd5ba864a72.zip CMake-831fef8167cfdcc86dfb838f60ef9dd5ba864a72.tar.gz CMake-831fef8167cfdcc86dfb838f60ef9dd5ba864a72.tar.bz2 |
Merge topic 'improve-ExternalProject-file-name-recognition'
7f10b13 ExternalProject: Extract file names from more urls
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/ExternalProject.cmake | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 3de6b7e..390b8f9 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -403,11 +403,11 @@ endfunction(_ep_write_verifyfile_script) function(_ep_write_extractfile_script script_filename name filename directory) set(args "") - if(filename MATCHES "(\\.bz2|\\.tar\\.gz|\\.tgz|\\.zip)$") + if(filename MATCHES "(\\.|=)(bz2|tar\\.gz|tgz|zip)$") set(args xfz) endif() - if(filename MATCHES "\\.tar$") + if(filename MATCHES "(\\.|=)tar$") set(args xf) endif() @@ -1109,10 +1109,15 @@ function(_ep_add_download_command name) else() if("${url}" MATCHES "^[a-z]+://") # TODO: Should download and extraction be different steps? - string(REGEX MATCH "[^/]*$" fname "${url}") - if(NOT "${fname}" MATCHES "\\.(bz2|tar|tgz|tar\\.gz|zip)$") + string(REGEX MATCH "[^/\\?]*$" fname "${url}") + if(NOT "${fname}" MATCHES "(\\.|=)(bz2|tar|tgz|tar\\.gz|zip)$") + string(REGEX MATCH "([^/\\?]+(\\.|=)(bz2|tar|tgz|tar\\.gz|zip))/.*$" match_result "${url}") + set(fname "${CMAKE_MATCH_1}") + endif() + if(NOT "${fname}" MATCHES "(\\.|=)(bz2|tar|tgz|tar\\.gz|zip)$") message(FATAL_ERROR "Could not extract tarball filename from url:\n ${url}") endif() + string(REPLACE ";" "-" fname "${fname}") set(file ${download_dir}/${fname}) get_property(timeout TARGET ${name} PROPERTY _EP_TIMEOUT) _ep_write_downloadfile_script("${stamp_dir}/download-${name}.cmake" "${url}" "${file}" "${timeout}" "${md5}") |