diff --git a/include/BoostInstall.cmake b/include/BoostInstall.cmake
index 3a00c16..069dde0 100644
--- a/include/BoostInstall.cmake
+++ b/include/BoostInstall.cmake
@@ -152,7 +152,31 @@ function(__boost_install_set_output_name LIB TYPE VERSION)
     # Arch and model
     math(EXPR bits ${CMAKE_SIZEOF_VOID_P}*8)
 
-    string(APPEND name_debug "-x${bits}") # x86 only for now
-    string(APPEND name_release "-x${bits}")
+    set(arch "x")
+
+    if(MSVC)
+
+      if(CMAKE_CXX_COMPILER_ARCHITECTURE_ID MATCHES "^ARM")
+        set(arch "a")
+      endif()
+
+    else()
+
+      if(CMAKE_SYSTEM_PROCESSOR MATCHES "^[Aa][Rr][Mm]"
+           OR CMAKE_SYSTEM_PROCESSOR MATCHES "aarch")
+        set(arch "a")
+      elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
+        set(arch "m")
+      elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i(3|6)86")
+        set(arch "x")
+      else()
+        string(SUBSTRING "${CMAKE_SYSTEM_PROCESSOR}" 0 1 arch)
+        string(TOLOWER "${arch}" arch)
+      endif()
+
+    endif()
+
+    string(APPEND name_debug "-${arch}${bits}")
+    string(APPEND name_release "-${arch}${bits}")
 
   endif()