diff options
-rw-r--r-- | Meta/CMake/utils.cmake | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/Meta/CMake/utils.cmake b/Meta/CMake/utils.cmake index caee954fcd..6cddf3cb5a 100644 --- a/Meta/CMake/utils.cmake +++ b/Meta/CMake/utils.cmake @@ -194,3 +194,19 @@ function(invoke_generator name generator version_file prefix header implementati add_custom_target("generate_${prefix}${name}" DEPENDS "${header}" "${implementation}") add_dependencies(all_generated "generate_${prefix}${name}") endfunction() + +function(download_file url path) + if (NOT EXISTS "${path}") + get_filename_component(file "${path}" NAME) + message(STATUS "Downloading file ${file} from ${url}") + + file(DOWNLOAD "${url}" "${path}" INACTIVITY_TIMEOUT 10 STATUS download_result) + list(GET download_result 0 status_code) + list(GET download_result 1 error_message) + + if (NOT status_code EQUAL 0) + file(REMOVE "${path}") + message(FATAL_ERROR "Failed to download ${url}: ${error_message}") + endif() + endif() +endfunction() |