Scintilla works on ARM64 (Windows 10) and ARM32 (the discontinued Windows RT and Windows 10 on ARM64) without code change, adding these changes make downstream projects build for ARM64 easy.
The three lines changes for makefiles are attached. (_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 is taken from VC's Toolset.props)
The remaining project files need add new platform (e.g.: copy from x64) and change _WIN32_WINNT to match Win10 (not actually required), and change minimum required version to Win10 (<MinimumRequiredVersion>10.00</MinimumRequiredVersion>, required to fix linker warning).
SciTE for Win10 ARM64 should also works.
The definitions of
_WIN32_WINNTandWINVERinwill be overridden by code as, for example, PlatWin.cxx contains:
Reusing the
XP_DEFINEandXP_LINKvariable is confusing as these values are not for Windows XP. Possibly change variable names toADD_DEFINEandADD_LINK.Renamed variable names.
Don't why the code is not written as:
Committed Scintilla change as [043bf8].
The SciTE patch contains an unmentioned change to the default subsystem so was not committed.
Some build systems insert implicit definitions of versions which is why there are #undef statements.
Related
Commit: [043bf8]
SUBSYSTEM:WINDOWS,5.02is in originally scite.mak (possible for x64 or non-XP).Last edit: Zufu Liu 2019-10-30
Removed
SUBSYSTEM:WINDOWS,5.02from scite.mak.The subsystem is not specified by default as that allows building for the linker's default version of Windows. Old linkers may still work for Windows 2000 or even earlier.
Since ADD_LINK (and its predecessor XP_LINK) are just specifying a subsystem, renamed this variable to SUBSYSTEM.
Committed as [256c86], [3a8bde].
Related
Commit: [3a8bde]
Commit: [256c86]
Project files with ARM64 platform.
AdditionalDependencies are updated due to bug in VS2017's ARM64 toolset (only kernel32.lib and user32.lib in Inhireted values).
Committed as [621a57], [3ff730].
Neither of these defines _ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE which is in the makefile.
Related
Commit: [3ff730]
Commit: [621a57]
_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE is defined in Toolset.props, e.g.:
C:\Program Files\Microsoft Visual Studio\2017\Common7\IDE\VC\VCTargets\Platforms\ARM64\PlatformToolsets\v141\Toolset.props
just like _USING_V110_SDK71_ in C:\Program Files\Microsoft Visual Studio\2017\Common7\IDE\VC\VCTargets\Platforms\x64\PlatformToolsets\v141_xp\Toolset.props`