With NSIS 3.x is it possible to create a native 64-bit installer? I see there was some post from 2016 referencing that support is pretty much complete for 2.x, but whenever I create an installer it results in a 32-bit installer stub?
Makensis v3 (32 and 64 bit) can produce 32 and 64 bit installers if you use the undocumented "Target" instruction but since there is no official 64-bit build yet you have to compile the stubs and plugins as 64-bit yourself or get them from someone.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The maintainers for Debian's nsis package have configured it to build both x86 and amd64 versions of all Stubs and some other files as well. The built version of NSIS available for download from SourceForge for
Windows sorely lack the amd64 versions of Stubs, so 64-bit installers are impossible to build using the version of NSIS distributed for Windows; but these Stubs are available in Debian's package and 64-bit installers can be built on machines running Debian.
Taking inspiration from the Debian package maintainers, I hope that both x86 and amd64 versions of Stubs and other necessary files can be built for future releases of NSIS for Windows. (rules/Makefile)
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The main issue here is that the official build still relies on VS6 with updates for the highest compatibility, which unfortunately doesn't have 64bit support because 64bit compilers weren't commonplace back then.
I agree though, cross-compiles on windows is a bit of a pain because of compatibility, and at the moment the build system can only handle one architecture at a time. Most linux distros build nsis twice and change the target arch to get both x86 and amd64 builds. In my fork I do the same for the windows builds, but the default installer target is always 32bit.
If we were to update to a newer toolchain, it would probably be to VS2005 since I've had people contact me on my fork of nsis (nsisbi) about having some compatibility issues with VS2008, with a few plugins not working properly in particular.
It would be nice to have a list of architectures to build for instead of just one setting (TARGET_ARCH in scons), this is alot easier on linux using gcc because the windows specific environment just prepends the cross compiler to the current gcc command. Can check each compiler in the list and skipping ones that fail. Then adding an abstract to the build system so that it handles lists of environments for the windows specific stuff. It's alot of work though particularly for microsoft compilers, and right now it's just easier to run the build twice to get what's needed.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Here is a NSCurl plug-in author of the unofficial NSIS, support for compiling to 64-bit installer, has built-in 64-bit versions of some plug-ins, but you use to and only x86 version, I'm afraid you can only compile your own, or do not use this plug-in.
Makensis v3 (32 and 64 bit) can produce 32 and 64 bit installers if you use the undocumented "Target" instruction but since there is no official 64-bit build yet you have to compile the stubs and plugins as 64-bit yourself or get them from someone.
Can you include the amd64 stubs and plugins in the next build? Otherwise I have to manually extract them from the deb package:
https://ubuntu.pkgs.org/20.04/ubuntu-universe-amd64/nsis-common_3.05-2_all.deb.html
The maintainers for Debian's nsis package have configured it to build both x86 and amd64 versions of all Stubs and some other files as well. The built version of NSIS available for download from SourceForge for
Windows sorely lack the amd64 versions of Stubs, so 64-bit installers are impossible to build using the version of NSIS distributed for Windows; but these Stubs are available in Debian's package and 64-bit installers can be built on machines running Debian.
Taking inspiration from the Debian package maintainers, I hope that both x86 and amd64 versions of Stubs and other necessary files can be built for future releases of NSIS for Windows. (rules/Makefile)
The main issue here is that the official build still relies on VS6 with updates for the highest compatibility, which unfortunately doesn't have 64bit support because 64bit compilers weren't commonplace back then.
I agree though, cross-compiles on windows is a bit of a pain because of compatibility, and at the moment the build system can only handle one architecture at a time. Most linux distros build nsis twice and change the target arch to get both x86 and amd64 builds. In my fork I do the same for the windows builds, but the default installer target is always 32bit.
If we were to update to a newer toolchain, it would probably be to VS2005 since I've had people contact me on my fork of nsis (nsisbi) about having some compatibility issues with VS2008, with a few plugins not working properly in particular.
It would be nice to have a list of architectures to build for instead of just one setting (TARGET_ARCH in scons), this is alot easier on linux using gcc because the windows specific environment just prepends the cross compiler to the current gcc command. Can check each compiler in the list and skipping ones that fail. Then adding an abstract to the build system so that it handles lists of environments for the windows specific stuff. It's alot of work though particularly for microsoft compilers, and right now it's just easier to run the build twice to get what's needed.
Here is a NSCurl plug-in author of the unofficial NSIS, support for compiling to 64-bit installer, has built-in 64-bit versions of some plug-ins, but you use to and only x86 version, I'm afraid you can only compile your own, or do not use this plug-in.
https://github.com/negrutiu/nsis/releases
Thank you. Hoping to see this being merged with the official build.