diff --git a/include/wx/msw/arm.manifest b/include/wx/msw/arm.manifest
new file mode 100644
index 0000000000..1879db76af
--- /dev/null
+++ b/include/wx/msw/arm.manifest
@@ -0,0 +1,22 @@
+
+
+
+wxWindows application
+
+
+
+
+
+
diff --git a/include/wx/msw/arm64.manifest b/include/wx/msw/arm64.manifest
new file mode 100644
index 0000000000..abcad20b72
--- /dev/null
+++ b/include/wx/msw/arm64.manifest
@@ -0,0 +1,22 @@
+
+
+
+wxWindows application
+
+
+
+
+
+
diff --git a/include/wx/msw/genrcdefs.h b/include/wx/msw/genrcdefs.h
index 65ff006081..50ce8d7429 100644
--- a/include/wx/msw/genrcdefs.h
+++ b/include/wx/msw/genrcdefs.h
@@ -23,11 +23,11 @@ EMIT(#define wxUSE_RC_MANIFEST 1)
EMIT(#define WX_CPU_AMD64)
#endif
-#ifdef _M_ARM
+#if defined _M_ARM || defined __arm__
EMIT(#define WX_CPU_ARM)
#endif
-#ifdef _M_ARM64
+#if defined _M_ARM64 || defined __aarch64__
EMIT(#define WX_CPU_ARM64)
#endif
diff --git a/include/wx/msw/rcdefs.h b/include/wx/msw/rcdefs.h
index 8b9ac716f9..ead5ec23dd 100644
--- a/include/wx/msw/rcdefs.h
+++ b/include/wx/msw/rcdefs.h
@@ -31,6 +31,14 @@
#ifndef WX_CPU_IA64
#define WX_CPU_IA64
#endif
+ #elif defined __arm__
+ #ifndef WX_CPU_ARM
+ #define WX_CPU_ARM
+ #endif
+ #elif defined __aarch64__
+ #ifndef WX_CPU_ARM64
+ #define WX_CPU_ARM64
+ #endif
#endif
#endif
diff --git a/include/wx/msw/wx.rc b/include/wx/msw/wx.rc
index 799d79ca24..b8070762c3 100644
--- a/include/wx/msw/wx.rc
+++ b/include/wx/msw/wx.rc
@@ -111,6 +111,10 @@ wxBITMAP_STD_COLOURS BITMAP "wx/msw/colours.bmp"
#define wxMANIFEST_CPU "ia64"
#elif defined(WX_CPU_X86)
#define wxMANIFEST_CPU "wx"
+#elif defined(WX_CPU_ARM)
+ #define wxMANIFEST_CPU "arm"
+#elif defined(WX_CPU_ARM64)
+ #define wxMANIFEST_CPU "arm64"
#else
// Notice that if the manifest is included, WX_CPU_XXX constant corresponding
// to the architecture we're compiling for must be defined. This can be done