I'm not a Windows user, so I can't test the result, but might I suggest Inno Setup? It's used for Visual Studio Code and Delphi, GOG.com uses a modified version of it, and it's by far the simplest, easiest way to build a professional-feeling, full-function Windows installer using open-source tools.
As a starting point, here's an .iss project definition that I wrote for installing Godot games, and the help is quite comprehensive about the syntax of .iss files.
(eg. the "Constants" page gives {reg:HKA\Software\My Program,Path|{autopf}\My Program} as an example that might be useful for looking up the Pidgin install directory to use as the value of DefaultDirName... {autopf} being "Whichever 'Program Files' path corresponds to the user/admin installation mode and 32/64-bitness the installer is running under", the latter of which is controlled by ArchitecturesInstallIn64BitMode and the former of which can be specified without auto-selection via things like {commonpf64} or {userpf} or with only partial selection via {commonpf}.)
I'm not a Windows user, so I can't test the result, but might I suggest Inno Setup? It's used for Visual Studio Code and Delphi, GOG.com uses a modified version of it, and it's by far the simplest, easiest way to build a professional-feeling, full-function Windows installer using open-source tools.
As a starting point, here's an .iss project definition that I wrote for installing Godot games, and the help is quite comprehensive about the syntax of
.iss
files.(eg. the "Constants" page gives
{reg:HKA\Software\My Program,Path|{autopf}\My Program}
as an example that might be useful for looking up the Pidgin install directory to use as the value ofDefaultDirName
...{autopf}
being "Whichever 'Program Files' path corresponds to the user/admin installation mode and 32/64-bitness the installer is running under", the latter of which is controlled byArchitecturesInstallIn64BitMode
and the former of which can be specified without auto-selection via things like{commonpf64}
or{userpf}
or with only partial selection via{commonpf}
.)