From 43920aa1a01e7592d1fe93ee5b33a57b5413accf Mon Sep 17 00:00:00 2001
From: lat9nq <22451773+lat9nq@users.noreply.github.com>
Date: Tue, 25 Jul 2023 15:47:44 -0400
Subject: [PATCH] cmake: Download nasm from our external repo

This package download has intermittent failures due to host Internet
issues (presumably), so download it ourselves from our own hosting.
---
 CMakeLists.txt | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 00d540f1f..af9f394f1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,6 +136,22 @@ if (YUZU_USE_BUNDLED_VCPKG)
         endif()
     endif()
 
+    if (MSVC)
+        set(VCPKG_DOWNLOADS_PATH ${PROJECT_SOURCE_DIR}/externals/vcpkg/downloads)
+        set(NASM_VERSION "2.16.01")
+        set(NASM_DESTINATION_PATH ${VCPKG_DOWNLOADS_PATH}/nasm-${NASM_VERSION}-win64.zip)
+        set(NASM_DOWNLOAD_URL "https://github.com/yuzu-emu/ext-windows-bin/raw/master/nasm/nasm-${NASM_VERSION}-win64.zip")
+
+        if (NOT EXISTS ${NASM_DESTINATION_PATH})
+            file(DOWNLOAD ${NASM_DOWNLOAD_URL} ${NASM_DESTINATION_PATH} SHOW_PROGRESS STATUS NASM_STATUS)
+
+            if (NOT NASM_STATUS EQUAL 0)
+                # Warn and not fail since vcpkg is supposed to download this package for us in the first place
+                message(WARNING "External nasm vcpkg package download from ${NASM_DOWNLOAD_URL} failed with status ${NASM_STATUS}")
+            endif()
+        endif()
+    endif()
+
     if (YUZU_TESTS)
         list(APPEND VCPKG_MANIFEST_FEATURES "yuzu-tests")
     endif()