Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support msitools for cross-building #163

Open
ssokolow opened this issue May 1, 2022 · 2 comments
Open

Support msitools for cross-building #163

ssokolow opened this issue May 1, 2022 · 2 comments

Comments

@ssokolow
Copy link

ssokolow commented May 1, 2022

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.

@volks73
Copy link
Owner

volks73 commented May 2, 2022

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.

@ssokolow
Copy link
Author

ssokolow commented May 2, 2022

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?

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.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants