Skip to main content

Cross compile Cargo project to Windows MSVC target with ease

Project description

cargo-xwin

formerly cargo-xwinbuild

CI Crates.io docs.rs PyPI Docker Image

Cross compile Cargo project to Windows msvc target with ease.

By using this software you are consented to accept the license at https://go.microsoft.com/fwlink/?LinkId=2086102

Prerequisite

  1. For pure Rust project, no prerequisites needed.
  2. For C/C++ dependencies, install clang.
  3. For assembly dependencies, install llvm-tools-preview component via rustup component add llvm-tools-preview or install llvm.

Installation

cargo install cargo-xwin

You can also install it using pip:

pip install cargo-xwin

We also provide a Docker image which has wine pre-installed in addition to cargo-xwin and Rust, for example to build for x86_64 Windows:

docker run --rm -it -v $(pwd):/io -w /io messense/cargo-xwin \
  cargo xwin build --release --target x86_64-pc-windows-msvc

Usage

  1. Install Rust Windows msvc target via rustup, for example, rustup target add x86_64-pc-windows-msvc
  2. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

cargo_xwin-0.8.7-py3-none-win_amd64.whl (2.3 MB view details)

Uploaded Python 3 Windows x86-64

cargo_xwin-0.8.7-py3-none-win32.whl (2.2 MB view details)

Uploaded Python 3 Windows x86

cargo_xwin-0.8.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

cargo_xwin-0.8.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

cargo_xwin-0.8.7-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ x86-64

cargo_xwin-0.8.7-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (4.2 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

cargo_xwin-0.8.7-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (5.3 MB view details)

Uploaded Python 3 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

File details

Details for the file cargo_xwin-0.8.7-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f78e0cbedcbb4663ecb2c81ac0960c09063ca9b7409bad147e99ba4f45bf87fa
MD5 ba896611e79b63665bf3993f164868f8
BLAKE2b-256 e6f3630249b9ae41f2aa302a26bae26c4b5a496c3869a98073c0e0e10a28407c

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.8.7-py3-none-win32.whl.

File metadata

  • Download URL: cargo_xwin-0.8.7-py3-none-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.12.17

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-win32.whl
Algorithm Hash digest
SHA256 df24735c1379c9a7562fd8a7686c28f3edfb3458f1fdad5ad1245eadc09a77b8
MD5 b49de610e379c16224cc65868a051e77
BLAKE2b-256 f52f9363511f21b003945d1c576ebc44cd0255e3d4d7f232823eded014ce26fd

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.8.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3c893bd01878798cf2b321a9311b094e5e0a1aff76a385bebf83f4454b739ccd
MD5 5bf794bb976758bf5ccd8493de7dbdc7
BLAKE2b-256 7b760aead6727d9e776d75561d4c8dea2cd4f104737b6c5f7c1ad47060b900e5

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.8.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b9fcb8b5ca08fd61835cae43f4220c9cf90583d9e8395fd4c2d73e611fbda784
MD5 8c817e514b3e9112355c62ca32b8a6a7
BLAKE2b-256 6349f98fa896f40a35193f137cc74e8789e9f47a2e8b59b3a443d779d3ce1464

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.8.7-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 da7b677d33ea07b469db117b47cfa7cae1155fe423636cb03809f00b7b24f9f1
MD5 42d95985d1acfd7f1d6d74a9576a352d
BLAKE2b-256 083b9e3c77b03c5ae70f6061a585de809b1cec21790a29687b9443f166a7512c

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.8.7-py3-none-manylinux_2_5_i686.manylinux1_i686.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 a3ae72506364255acb8dce6d2533eb0b4866e23caa8b462453937e07595643b6
MD5 c1ac60eadf06b00bd0654b14ae2afd9e
BLAKE2b-256 f228df3fe42b3354eddbc5a1362f509acebba628e468f32e54f79ed280a7b0db

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.8.7-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.8.7-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 edba1390879f27909745b9aa5a87cb89b36543d9429f3a1e5a35a8cfee5a519d
MD5 da640ad282a62a8ea57deaa59bab2de1
BLAKE2b-256 80d21254ec8107b0040be271b0c10d7d1d26aaf6f8118ea01f7cf2121f5e79cd

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page