SVT-AV1: Enable NASM on x86 only, ASM on ARM only.

Also force CMP0194 to make sure MSVC is not chosen for NASM or ASM.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index e5b9fa3..cd88a64 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -25,6 +25,12 @@
     cmake_policy(SET CMP0169 OLD)
 endif()
 
+# Disallow MSVC for ASM.
+# https://cmake.org/cmake/help/latest/policy/CMP0194.html
+if(POLICY CMP0194)
+    cmake_policy(SET CMP0194 NEW)
+endif()
+
 project(libavif LANGUAGES C VERSION 1.3.0)
 
 # The root directory of the avif source
@@ -493,6 +499,16 @@
     set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} rav1e")
 endif()
 
+if(AVIF_CODEC_AVM)
+    # Avoid the following error:
+    #   CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
+    #   Missing variable is: CMAKE_ASM_COMPILE_OBJECT
+    # For some reason this must be done before check_avif_option(AVIF_CODEC_AOM TARGET aom PKG_NAME aom).
+    # See also https://gitlab.kitware.com/cmake/cmake/-/issues/25042.
+    # Enable ASM before NASM in SVT-AV1.
+    enable_language(ASM)
+endif()
+
 check_avif_option(AVIF_CODEC_SVT TARGET SvtAv1Enc PKG_NAME svt)
 if(AVIF_CODEC_SVT_ENABLED)
     target_compile_definitions(avif_obj PRIVATE -DAVIF_CODEC_SVT=1)
@@ -503,15 +519,6 @@
     set(AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE "${AVIF_PKG_CONFIG_EXTRA_REQUIRES_PRIVATE} SvtAv1Enc")
 endif()
 
-if(AVIF_CODEC_AVM)
-    # Avoid the following error:
-    #   CMake Error: Error required internal CMake variable not set, cmake may not be built correctly.
-    #   Missing variable is: CMAKE_ASM_COMPILE_OBJECT
-    # For some reason this must be done before check_avif_option(AVIF_CODEC_AOM TARGET aom PKG_NAME aom).
-    # See also https://gitlab.kitware.com/cmake/cmake/-/issues/25042.
-    enable_language(ASM)
-endif()
-
 check_avif_option(AVIF_CODEC_AOM TARGET aom PKG_NAME aom)
 if(AVIF_CODEC_AOM_ENABLED)
     target_compile_definitions(avif_obj PRIVATE -DAVIF_CODEC_AOM=1)
diff --git a/cmake/Modules/LocalSvt.cmake b/cmake/Modules/LocalSvt.cmake
index c096efa..b6b0201 100644
--- a/cmake/Modules/LocalSvt.cmake
+++ b/cmake/Modules/LocalSvt.cmake
@@ -22,21 +22,23 @@
         set(SVT_BINARY_DIR "${SVT_BINARY_DIR}/${ANDROID_ABI}")
     endif()
 
-    # Workaround https://gitlab.kitware.com/cmake/cmake/-/issues/25042 by enabling ASM before ASM_NASM
-    if(NOT CMAKE_ASM_COMPILER)
+    if(CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|AMD64|amd64)")
+        # NASM is only used on x86.
+        if(NOT CMAKE_ASM_NASM_COMPILER)
+            include(CheckLanguage)
+            check_language(ASM_NASM)
+            if(CMAKE_ASM_NASM_COMPILER)
+                enable_language(ASM_NASM)
+            endif()
+        endif()
+    elseif(NOT CMAKE_ASM_COMPILER)
+        # ASM is only used on ARM.
         include(CheckLanguage)
         check_language(ASM)
         if(CMAKE_ASM_COMPILER)
             enable_language(ASM)
         endif()
     endif()
-    if(NOT CMAKE_ASM_NASM_COMPILER AND CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|AMD64|amd64)")
-        include(CheckLanguage)
-        check_language(ASM_NASM)
-        if(CMAKE_ASM_NASM_COMPILER)
-            enable_language(ASM_NASM)
-        endif()
-    endif()
 
     FetchContent_Declare(
         svt