Introduce minimal MSW ARM support

wxMSW could already be compiled for ARM with MSVC, but due to not
defining any ARCH_SUFFIX for ARM, makefile.vc used to place objectsi
and libraries to the same folder as x86 objects and libraries.

A completely different question is what kind of Windows runs on 32-bit
ARM, and whether one can run regular desktop apps on it.

This commit mimics what f69dbaa1 did for ARM64, and adapts it for ARM.

Closes #24222.
This commit is contained in:
Lauri Nurmi 2024-01-15 23:02:16 +02:00 committed by Vadim Zeitlin
parent ed89fc5f3b
commit 99bc43cefe
11 changed files with 94 additions and 4 deletions

View file

@ -49,7 +49,7 @@ BUILD = debug
# PATH. Rather it affects some options passed to some of the common build
# utilities such as the resource compiler and the linker.
#
# Accepted values: IA64, X64, ARM64
# Accepted values: IA64, X64, ARM, ARM64
# (AMD64 accepted as synonym for X64 but should not be used any more).
TARGET_CPU = $(CPU)

View file

@ -1873,6 +1873,9 @@ BUILD_CFG_FILE = $(SETUPHDIR)\build.cfg
!if "$(TARGET_CPU)" == "AMD64"
ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "ARM"
ARCH_SUFFIX = _arm
!endif
!if "$(TARGET_CPU)" == "ARM64"
ARCH_SUFFIX = _arm64
!endif
@ -1891,6 +1894,9 @@ ARCH_SUFFIX = _x64
!if "$(TARGET_CPU)" == "amd64"
ARCH_SUFFIX = _x64
!endif
!if "$(TARGET_CPU)" == "arm"
ARCH_SUFFIX = _arm
!endif
!if "$(TARGET_CPU)" == "arm64"
ARCH_SUFFIX = _arm64
!endif
@ -1942,6 +1948,9 @@ LIBTYPE_SUFFIX = dll
!if "$(TARGET_CPU)" == "AMD64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(TARGET_CPU)" == "ARM"
LINK_TARGET_CPU = /MACHINE:ARM
!endif
!if "$(TARGET_CPU)" == "ARM64"
LINK_TARGET_CPU = /MACHINE:ARM64
!endif
@ -1960,6 +1969,9 @@ LINK_TARGET_CPU = /MACHINE:X64
!if "$(TARGET_CPU)" == "amd64"
LINK_TARGET_CPU = /MACHINE:X64
!endif
!if "$(TARGET_CPU)" == "arm"
LINK_TARGET_CPU = /MACHINE:ARM
!endif
!if "$(TARGET_CPU)" == "arm64"
LINK_TARGET_CPU = /MACHINE:ARM64
!endif

View file

@ -29,6 +29,9 @@
<PropertyGroup Label="UserMacros" Condition="'$(Platform)'=='x64'">
<wxArchSuffix>_x64</wxArchSuffix>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition="'$(Platform)'=='ARM'">
<wxArchSuffix>_arm</wxArchSuffix>
</PropertyGroup>
<PropertyGroup Label="UserMacros" Condition="'$(Platform)'=='ARM64'">
<wxArchSuffix>_arm64</wxArchSuffix>
</PropertyGroup>