Menu

#318 add support for windows ARM64 in makensis.nsi

3.x Stable
open
nobody
None
5
1 day ago
5 days ago
Demon
No

I was running test on Windows ARM64, and found that Example/makensis.nsi doesn't have ARM64 support yet.

1 Attachments

Discussion

  • Jason

    Jason - 3 days ago

    The better way to do it is like this:

    !macro InstallPlugin pi
      !if /FileExists ..\Plugins\amd64-unicode\${pi}.dll
        File "/oname=$InstDir\Plugins\amd64-unicode\${pi}.dll" ..\Plugins\amd64-unicode\${pi}.dll
      !endif
      !if /FileExists ..\Plugins\arm64-unicode\${pi}.dll
        File "/oname=$InstDir\Plugins\arm64-unicode\${pi}.dll" ..\Plugins\arm64-unicode\${pi}.dll
      !endif
      !if /FileExists ..\Plugins\x86-ansi\${pi}.dll
        File "/oname=$InstDir\Plugins\x86-ansi\${pi}.dll" ..\Plugins\x86-ansi\${pi}.dll
      !endif
      !if /FileExists ..\Plugins\x86-unicode\${pi}.dll
        File "/oname=$InstDir\Plugins\x86-unicode\${pi}.dll" ..\Plugins\x86-unicode\${pi}.dll
      !endif
    !macroend
    
    !macro InstallStub stub
      !if /FileExists ..\Stubs\${stub}-amd64-unicode
        File ..\Stubs\${stub}-amd64-unicode
      !endif
      !if /FileExists ..\Stubs\${stub}-arm64-unicode
        File ..\Stubs\${stub}-arm64-unicode
      !endif
      !if /FileExists ..\Stubs\${stub}-x86-ansi
        File ..\Stubs\${stub}-x86-ansi
      !endif
      !if /FileExists ..\Stubs\${stub}-x86-unicode
        File ..\Stubs\${stub}-x86-unicode
      !endif
    !macroend
    

    The nsi script, as far as I know, doesn't have a way to detect arm64 at compile time. Arm64 support still isn't complete yet. Maybe we could add a predefine to makensis / .nsi script that says what architecture it's targeting?

     
  • Demon

    Demon - 1 day ago

    Yes, you can check it at runtime but not at compile time currently.

    !include x64.nsh
    
    ${If} ${IsNativeARM64}
    
    ${EndIf}
    
     

Log in to post a comment.

MongoDB Logo MongoDB