]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Add error detection to zstd download (#673)
authorAlexander Lanin <alex@lanin.de>
Tue, 29 Sep 2020 17:59:43 +0000 (19:59 +0200)
committerGitHub <noreply@github.com>
Tue, 29 Sep 2020 17:59:43 +0000 (19:59 +0200)
cmake/Findzstd.cmake

index 42de0cd9f8c573da298d294ebce4e3c0ea8304c1..848348fd5f22e9cf1d50d944d8b68d62a958b192 100644 (file)
@@ -13,12 +13,22 @@ if(ZSTD_FROM_INTERNET)
   set(zstd_build ${CMAKE_BINARY_DIR}/zstd-build)
 
   if(NOT EXISTS "${zstd_dir}.tar.gz")
-    file(DOWNLOAD "${zstd_url}" "${zstd_dir}.tar.gz")
+    file(DOWNLOAD "${zstd_url}" "${zstd_dir}.tar.gz" STATUS download_status)
+    list(GET download_status 0 error_code)
+    if(error_code)
+      file(REMOVE "${zstd_dir}.tar.gz")
+      list(GET download_status 1 error_message)
+      message(FATAL "Failed to download zstd: ${error_message}")
+    endif()
   endif()
 
   execute_process(
-    COMMAND ${CMAKE_COMMAND} -E tar xf "${zstd_dir}.tar.gz"
-    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}")
+    COMMAND tar xf "${zstd_dir}.tar.gz"
+    WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
+    RESULT_VARIABLE tar_error)
+  if(NOT tar_error EQUAL 0)
+    message(FATAL "extracting ${zstd_dir}.tar.gz failed")
+  endif()
 
   set(ZSTD_BUILD_SHARED OFF)
   add_subdirectory("${zstd_dir}/build/cmake" "${zstd_build}" EXCLUDE_FROM_ALL)