Update installer.in.iss to support ARM64
Release notes Inno Setup 6.3.0:
Support for Arm64 systems improved, and related enhancements
-
Setup now officially supports the installation of x64 apps on Arm64 Windows 11 systems, which are able to run x64 binaries via emulation. To enable your x64 app installers to run properly on Arm64 Windows 11, some minor changes may be needed in your scripts. Most importantly:
- In
ArchitecturesAllowedandArchitecturesInstallIn64BitMode, change any use ofx64tox64compatible. - In
Checkparameters and[Code], change any use ofIsX64toIsX64Compatible. - In
[Code], if there are anyProcessorArchitecture = paX64comparisons, replace them with calls toIsX64Compatible.
The key difference between
x64/IsX64and the newx64compatible/IsX64Compatibleis that the latter matches both x64 Windows and Arm64 Windows 11. In most cases, you should make the above changes, because otherwise, users on Arm64 systems may not be able to run your installers. For example, anArchitecturesAllowed=x64setting will only allow the installer to run on x64 Windows — not on Arm64 Windows 11. Or, if you ship x86 and x64 versions of your app in the same installer, the 32-bit x86 version may be chosen instead of the expected x64 version when running on Arm64 Windows 11. - In
-
The
[Setup]section directivesArchitecturesAllowedandArchitecturesInstallIn64BitModehave been enhanced:- Six new architecture identifiers have been introduced. Briefly:
arm32compatiblematches systems capable of running 32-bit Arm binaries.x64compatiblematches systems capable of running x64 binaries.x64osmatches systems running x64 Windows only. (Equivalent to the existing x64 identifier, which is now deprecated.)x86compatiblematches systems capable of running 32-bit x86 binaries.x86osmatches systems running 32-bit x86 Windows only. (Equivalent to the existing x86 identifier.)win64matches systems running 64-bit Windows, regardless of architecture. See the new Architecture Identifiers help topic for further details on each.
- Boolean expressions are now supported. Through use of the
andoperator, for example, it is possible to require two architecture identifiers to match at the same time. See theArchitecturesAllowedhelp topic for usage examples.
- Six new architecture identifiers have been introduced. Briefly:
-
The
x64architecture identifier is now deprecated. If it is used, the compiler will issue a warning and substitutex64os, which has the same effect. But as mentioned above, in most cases, scripts should be changed to usex64compatiblebecause it matches both x64 Windows and Arm64 Windows 11.
Thanks for the PR, I'll give it a spin once I have some time.
Did you actually test this on Windows ARM? I don't have any Windows ARM system at hand, and GitHub Actions still doesn't have Windows ARM runners, so I don't have any way to check that this actually fixes #206.
Hello Etienne, as far as I remember (testing happened a while ago), our software could at least communicate with the library on an M-generation Mac running Windows on ARM in Parallels… I was looking for a new compile this way (my next step would (have )be(en) to setup the development environment to build locally – only just joined github, so not familiar with procedures and services just yet 😉), to enable me to verify the out-of-the-box experience (because it got installed into the 32-bit program files folder, the setup prerequisite check could not find it and would mark the install as failed).
Thanks, looking forward to completing the tests.
Enjoy your weekend Gert
From: Etienne Dechamps @.> Sent: Friday, November 8, 2024 7:41 PM To: dechamps/FlexASIO @.> Cc: Gert Leunen @.>; Author @.> Subject: Re: [dechamps/FlexASIO] Update installer.in.iss to support ARM64 (PR #250)
You don't often get email from @.@.>. Learn why this is importanthttps://aka.ms/LearnAboutSenderIdentification This email originated from outside of the Group of Companies. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Thanks for the PR, I'll give it a spin once I have some time.
Did you actually test this on Windows ARM? I don't have any Windows ARM system at hand, and GitHub Actions still doesn't have Windows ARM runners, so I don't have any way to check that this actually fixes #206https://github.com/dechamps/FlexASIO/issues/206.
— Reply to this email directly, view it on GitHubhttps://github.com/dechamps/FlexASIO/pull/250#issuecomment-2465514190, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BKSOPQUPK4VQCK5HBKFT5Q3Z7UAVFAVCNFSM6AAAAABRIS3OU6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRVGUYTIMJZGA. You are receiving this because you authored the thread.Message ID: @.@.>>
GitHub Actions automatically builds FlexASIO including the installer on every push, so you can see the outcome of your change here. (Ignore the sigstore error, that's an issue on my end)
Thanks, I've downloaded it. The guy maintaining the Mac has this week off, I'll get back to you when he returns.
Installer appears to run fine and deploys into the correct directory. I've done just a quick test and our software appears to communicate with the library.
I have a Windows ARM laptop and am affected by #206. I'd be happy to test this change, but the artifacts of the GitHub Action seem expired. Is there a way to re-run it?
Having worked with Inno Setup a bit myself for other software, the code change in this PR looks good to me, btw.
I have a Windows ARM laptop and am affected by #206. I'd be happy to test this change, but the artifacts of the GitHub Action seem expired. Is there a way to re-run it?
Having worked with Inno Setup a bit myself for other software, the code change in this PR looks good to me, btw.
FlexASIO-1.10b-5-g7b0fdfd.zip Hello, sorry for the delay, but please find attached. Happy testing! I hope it ends up in a new release soon ;-)
Thanks @Gert-L! I tested this version that you provided and it correctly installs both x86 and x64 dlls and I can use FlexASIO in a DAW that runs emulated x64 on ARM. I'd be happy to see this change merged.
@Gert-L @dechamps It sounds like this might be good to go?