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