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.9.2-py3-none-win_amd64.whl (2.4 MB view details)

Uploaded Python 3 Windows x86-64

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

Uploaded Python 3 Windows x86

cargo_xwin-0.9.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (4.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

cargo_xwin-0.9.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.0 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

cargo_xwin-0.9.2-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.9.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (4.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.5+ i686

cargo_xwin-0.9.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (5.5 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.9.2-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for cargo_xwin-0.9.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f484c3e262cd95adfc0fd5545f15c90162fddf512e9d80efd46d55076d05f04a
MD5 4ae2c6ee4d3591d849c518b30ac9aea8
BLAKE2b-256 8f88531d375d3813004bf72ec64730f6550181ddbefb4037605c29b5917107c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cargo_xwin-0.9.2-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.20

File hashes

Hashes for cargo_xwin-0.9.2-py3-none-win32.whl
Algorithm Hash digest
SHA256 6d011a5168c6842425a8a28cd743cbd8a03277d484f4c860abefbf33670f11fe
MD5 5df4971fd833dfaf220c514a8859de9e
BLAKE2b-256 9e6393ef43099662508ba7f97d1efd7d3551ab9be9e74169ff65fac6b6f3602d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cargo_xwin-0.9.2-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5d282b404c0f1c083388127490febdfcc8daae6b3731efe449a9514664f945b2
MD5 15773b44978dddde304f5593bf4ffea9
BLAKE2b-256 724c3201ad889ac3e4c6cd6449320001387a5068e96f8f4196f948591782fdf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cargo_xwin-0.9.2-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dad571df0bbf15f10b68e69f853fe3a6ee953bdde14a6ea6a75560a7db636505
MD5 cef7858d5339cf8d599222f4ba79a557
BLAKE2b-256 44e3ae530961657cdf7b1667312782f26f7b9312c062bc7f01c9b1c874de932f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cargo_xwin-0.9.2-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 260e699852c7dce4eed611ed96d40bdffeec80a0e56ff6840a30867c9f6b216d
MD5 c6959cc575aff60784ebd67191ee21e2
BLAKE2b-256 6eaf6f90c24a46a1676ec1f9ce2972f92089de48d54fac8f3ec90fb8a6b87ede

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cargo_xwin-0.9.2-py3-none-manylinux_2_5_i686.manylinux1_i686.whl
Algorithm Hash digest
SHA256 1cb8243d4ef7ec55b6d9ca67f09f45e372db946a0500d27a570b02d6d4fc6cac
MD5 1aad2e85657b487119a60eebf2934750
BLAKE2b-256 9a87e0c017ac96baf8a8fa432962855968737e42354d318ca64c7284d9dc2395

See more details on using hashes here.

File details

Details for the file cargo_xwin-0.9.2-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.9.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 4b56e13bef6c7b5191090729bd9b21018543676e63e7ca3eb3529f3b9acc3346
MD5 89a65d13090deeac7c68198c21ec34cc
BLAKE2b-256 db6b7e1af9df9fbef66a9de6c9dca4069c1831a8f096a2239b504a9d61574781

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