From a03bb5a28f42767d1494cb17971103faae5b409b Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 13 Jul 2009 10:46:32 -0400 Subject: ENH: Check tarball filename in ep_add This teaches the ExternalProject module to check the download URL file name. If it is not a tarball (.tar, .tgz, .tar.gz) it is an error because UntarFile does not yet understand other archive formats. --- Modules/ExternalProject.cmake | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Modules/ExternalProject.cmake b/Modules/ExternalProject.cmake index 5465875..1adcd79 100644 --- a/Modules/ExternalProject.cmake +++ b/Modules/ExternalProject.cmake @@ -512,8 +512,11 @@ function(_ep_add_download_command name) else() if("${url}" MATCHES "^[a-z]+://") # TODO: Should download and extraction be different steps? - string(REGEX MATCH "\\.(tar|tgz|tar\\.gz)" ext "${url}") - set(file ${download_dir}/${name}${ext}) + string(REGEX MATCH "[^/]*$" fname "${url}") + if(NOT "${fname}" MATCHES "\\.(tar|tgz|tar\\.gz)$") + message(FATAL_ERROR "Could not extract tarball filename from url:\n ${url}") + endif() + set(file ${download_dir}/${fname}) set(cmd ${CMAKE_COMMAND} -Dremote=${url} -Dlocal=${file} -P ${CMAKE_ROOT}/Modules/DownloadFile.cmake COMMAND) set(comment "Performing download step (download and extract) for '${name}'") -- cgit v0.12