Menu

#1319 Add build configuration for Windows 10 on ARM64

Committed
closed
5
2019-12-07
2019-10-27
Zufu Liu
No

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.

2 Attachments

Discussion

  • Neil Hodgson

    Neil Hodgson - 2019-10-27

    The definitions of _WIN32_WINNT and WINVER in

    +XP_DEFINE=-D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -D_ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1
    

    will be overridden by code as, for example, PlatWin.cxx contains:

    #undef _WIN32_WINNT
    #define _WIN32_WINNT 0x0500
    #undef WINVER
    #define WINVER 0x0500
    

    Reusing the XP_DEFINE and XP_LINK variable is confusing as these values are not for Windows XP. Possibly change variable names to ADD_DEFINE and ADD_LINK.

     
  • Zufu Liu

    Zufu Liu - 2019-10-27

    Renamed variable names.
    Don't why the code is not written as:

    #ifndef _WIN32_WINNT
    #define _WIN32_WINNT 0x0500
    #endif
    
     
  • Neil Hodgson

    Neil Hodgson - 2019-10-30

    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]

    • Zufu Liu

      Zufu Liu - 2019-10-30

      SUBSYSTEM:WINDOWS,5.02 is in originally scite.mak (possible for x64 or non-XP).

       

      Last edit: Zufu Liu 2019-10-30
  • Zufu Liu

    Zufu Liu - 2019-10-30

    Removed SUBSYSTEM:WINDOWS,5.02 from scite.mak.

     
    • Neil Hodgson

      Neil Hodgson - 2019-10-30

      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]

  • Zufu Liu

    Zufu Liu - 2019-10-30

    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).

     
    • Neil Hodgson

      Neil Hodgson - 2019-10-30

      Committed as [621a57], [3ff730].

      Neither of these defines _ARM64_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE which is in the makefile.

       

      Related

      Commit: [3ff730]
      Commit: [621a57]

  • Neil Hodgson

    Neil Hodgson - 2019-10-30
    • labels: --> win32, scintilla, scite, msvc
    • Group: Completed --> Committed
     
    • Zufu Liu

      Zufu Liu - 2019-10-30

      _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`

       
  • Neil Hodgson

    Neil Hodgson - 2019-12-07
    • status: open --> closed
     

Log in to post a comment.

MongoDB Logo MongoDB