cargo-wix
cargo-wix copied to clipboard
Support msitools for cross-building
This bit in the README may not be strictly necessary:
The cargo-wix project can be installed on any platform supported by the Rust programming language, but the Wix Toolset is Windows only; thus, this project is only useful when installed on a Windows machine.
Specifically, because the msitools project offers a wixl
command which aims to be a syntax-compatible replacement for the WiX Toolset on POSIX platforms. (Note that on Ubuntu Linux, wixl
is its own package separate from the msitools
package.)
It'd be nice to have support for using it.
I was not aware of the msitools project. It looks interesting. It looks like the wixl
command is a one-step compile/build command, while WiX Toolset is a two-step compile/link command. This would suggest the command line interfaces are different between the two and could require significantly more changes to add support than a single flag/drop-in replacement.
I did see:
Many features supported by WiX are not implemented in wixl, such as the installer UI support
Currently, this cargo subcommand is heavily integrated with the WiX Toolset, so managing differences in implementation between the two is a little beyond my interest and capacity. I wonder if a separate cargo msi
subcommand would be more appropriate that "wraps" the msitools, similar to how cargo wix
wraps the WiX Toolset?
I am open to a PR and/or further discussion to map out adding support if possible.
Currently, this cargo subcommand is heavily integrated with the WiX Toolset, so managing differences in implementation between the two is a little beyond my interest and capacity. I wonder if a separate
cargo msi
subcommand would be more appropriate that "wraps" the msitools, similar to howcargo wix
wraps the WiX Toolset?
That may be true. Perhaps, for cargo wix
, it might be better to explore options for making it easy to have cargo wix
run WiX Toolset inside Wine if cfg!(not(windows))
, similar to how things which build Inno Setup installers on non-Windows platforms work.
(Then the simplest way to support it would be wine <cmd>
instead of <cmd>
and letting the user make sure they've set up a compatible WINEPREFIX
... though, ideally, you'd also want a tunable so a user can specify a custom path to wine
in case they want to juggle multiple versions.)
am open to a PR and/or further discussion to map out adding support if possible.
Unfortunately, at the moment, I don't have time to do much. I'm currently trying to catch up on a backlog of hobby projects I fell very behind on.
(While cleaning up my notes for various projects, cargo-wix came up as one of the things I'll eventually need once I'm ready to start making Windows builds and, given how long it took me to discover wixl
while assembling this reference blog post, I thought it'd be for the greater good to move this "explore this option" TODO from my private TODO list to somewhere it can make others aware of it.)