Cross compile Cargo project to Windows MSVC target with ease
Project description
cargo-xwin
formerly cargo-xwinbuild
Cross compile Cargo project to Windows msvc target with ease. (LLVM installation required.)
By using this software you are consented to accept the license at https://go.microsoft.com/fwlink/?LinkId=2086102
Installation
cargo install cargo-xwin
You can also install it using pip:
pip install cargo-xwin
Usage
- Install LLVM, on macOS:
brew install llvm
- Install Rust Windows msvc target via rustup, for example,
rustup target add x86_64-pc-windows-msvc
- Run
cargo xwin build
, for example,cargo xwin build --target x86_64-pc-windows-msvc
Run tests with wine
With wine installed, you can run tests with the cargo xwin test
command,
for example, cargo xwin test --target x86_64-pc-windows-msvc
Customization
The Microsoft CRT and Windows SDK can be customized using the following environment variables or CLI options.
Environment Variable | CLI option | Description |
---|---|---|
XWIN_ARCH |
--xwin-arch |
The architectures to include, defaults to x86_64,aarch64 , possible values: x86, x86_64, aarch, aarch64 |
XWIN_VARIANT |
--xwin-variant |
The variants to include, defaults to desktop , possible values: desktop, onecore, spectre |
XWIN_VERSION |
--xwin-version |
The version to retrieve, defaults to 16, can either be a major version of 15 or 16, or a <major>.<minor> version |
XWIN_CACHE_DIR |
--xwin-cache-dir |
xwin cache directory to put CRT and SDK files |
CMake Support
Some Rust crates use the cmake crate to build C/C++ dependencies, cargo-xwin will generate a CMake toolchain file automatically to make cross compilation work out of the box.
ninja is required to enable CMake support.
License
This work is released under the MIT license. A copy of the license is provided in the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for cargo_xwin-0.7.1-py3-none-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a7d1f45dedd8cef3bc7208609c6252579de7c9f167c132e879c1e0a6b040577 |
|
MD5 | b0f812493810d6f0d823f29ff09b6c46 |
|
BLAKE2b-256 | 49994c4c770e28085fd32b00ce42340e8daf9bb25b70acccbb32501169dc476f |
Hashes for cargo_xwin-0.7.1-py3-none-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f237f82ceeb1c5f457ac1bdd83705418057aa995626925e10e6cdeda04b697a |
|
MD5 | f635ebd4976c36f7cbdc07f70fbade97 |
|
BLAKE2b-256 | 9bb62c8363d262919bdffc5bedb27a3e2aca4d2749ef44fdcd41a35d1eb7f154 |
Hashes for cargo_xwin-0.7.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27d369f6324614e4a9180c0d068386fbbebea3ebee158bc3c4ebdd6f50d24baa |
|
MD5 | 6ffaca95e31b5b16c359ff3d7983628b |
|
BLAKE2b-256 | de4bcdcd4e0f600e16126fe21536d64cbfdb986768f04b7e205e959d76175817 |
Hashes for cargo_xwin-0.7.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7341bc4f16fcebbbb9d01ef79ea952f26910b2276751071f1487b1c4cdaf91c6 |
|
MD5 | 63fa7fcd8943efd5f02022ca699fac62 |
|
BLAKE2b-256 | d1806d781419ce06dfaf2e7d747f1d3b97c6debbe410fbfe089d6f8dfd9cbefd |
Hashes for cargo_xwin-0.7.1-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 593502a01c0c01a4497dda6edd9933c8542e657279c176ee68cce195dcd0c4fa |
|
MD5 | 40be139d1bdc830f01d1f03f993d4313 |
|
BLAKE2b-256 | 8b216da2f249498c4be3ef0b25bcc47b1c172334bdac8c73b9baaff20b206dd1 |
Hashes for cargo_xwin-0.7.1-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9961d16efae317a39c9031af8ebe4b08428e7dc4a1eca0a30229b6727c5d13f7 |
|
MD5 | bb948bc566ce98c675e18dca4752ec97 |
|
BLAKE2b-256 | 9b6f3ad073a1bd5a414ef954a8a2ce701022cc8b5f4fb6fbebe998e3ceb3a867 |
Hashes for cargo_xwin-0.7.1-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 008969957b56472fcd8e8dae3fdbb8df04a608485e673cc13bfd8737a60ad7fd |
|
MD5 | accd1903b2760cde67bfffa18924f119 |
|
BLAKE2b-256 | 87cf11b79638336d40c0f247b257ebf28715e516a2324a381d4a11f93df390e1 |