function(download_third_party path url archive hash_type hash) if(NOT EXISTS ${CMAKE_SOURCE_DIR}/third-party/${path}) if(NOT EXISTS ${CMAKE_BINARY_DIR}/${archive}) message("${CMAKE_BINARY_DIR}/${archive} missing") message("Downloading ${url}...") file(DOWNLOAD ${url} ${CMAKE_BINARY_DIR}/${archive} TIMEOUT 60 TLS_VERIFY ON EXPECTED_HASH ${hash_type}=${hash}) endif() file(ARCHIVE_EXTRACT INPUT ${CMAKE_BINARY_DIR}/${archive} DESTINATION ${CMAKE_SOURCE_DIR}/third-party) endif() endfunction()