Merge topic 'ExternalProject-more-url-filenames'

57c337e2 ExternalProject: Match filenames in URLs with query strings and anchors
This commit is contained in:
Brad King 2016-07-06 09:36:13 -04:00 committed by CMake Topic Stage
commit 7e53e6c9cc

View File

@ -1871,15 +1871,13 @@ function(_ep_add_download_command name)
if("${url}" MATCHES "^[a-z]+://") if("${url}" MATCHES "^[a-z]+://")
# TODO: Should download and extraction be different steps? # TODO: Should download and extraction be different steps?
if("x${fname}" STREQUAL "x") if("x${fname}" STREQUAL "x")
string(REGEX MATCH "[^/\\?]*$" fname "${url}") set(fname "${url}")
endif() endif()
if(NOT "${fname}" MATCHES "(\\.|=)(7z|tar|tar\\.bz2|tar\\.gz|tar\\.xz|tbz2|tgz|txz|zip)$") if("${fname}" MATCHES [[([^/\?#]+(\.|=)(7z|tar|tar\.bz2|tar\.gz|tar\.xz|tbz2|tgz|txz|zip))([/?#].*)?$]])
string(REGEX MATCH "([^/\\?]+(\\.|=)(7z|tar|tar\\.bz2|tar\\.gz|tar\\.xz|tbz2|tgz|txz|zip))/.*$" match_result "${url}")
set(fname "${CMAKE_MATCH_1}") set(fname "${CMAKE_MATCH_1}")
endif() elseif(no_extract)
if (no_extract) get_filename_component(fname "${fname}" NAME)
get_filename_component(fname "${url}" NAME) else()
elseif(NOT "${fname}" MATCHES "(\\.|=)(7z|tar|tar\\.bz2|tar\\.gz|tar\\.xz|tbz2|tgz|txz|zip)$")
message(FATAL_ERROR "Could not extract tarball filename from url:\n ${url}") message(FATAL_ERROR "Could not extract tarball filename from url:\n ${url}")
endif() endif()
string(REPLACE ";" "-" fname "${fname}") string(REPLACE ";" "-" fname "${fname}")