跳转到主要内容

轻松将Cargo项目交叉编译到Windows MSVC目标

项目描述

cargo-xwin

之前为 cargo-xwinbuild

CI Crates.io docs.rs PyPI Docker Image

🚀 通过在GitHub上赞助我 帮助我成为全职开源开发者

轻松将Cargo项目交叉编译到Windows msvc目标。

使用此软件,您同意接受位于 https://go.microsoft.com/fwlink/?LinkId=2086102 的许可协议。

先决条件

  1. 对于纯Rust项目,无需先决条件。
  2. 对于C/C++依赖项,请安装 clang(在macOS上运行 brew install llvm 即可)。
  3. 对于汇编依赖项,通过 rustup component add llvm-tools-preview 或安装 llvm 来安装 llvm-tools-preview 组件。

安装

cargo install --locked cargo-xwin

您还可以使用pip进行安装。

pip install cargo-xwin

我们还提供了一个包含预安装wine、cargo-xwin和Rust的 Docker镜像,例如用于构建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

使用方法

  1. 通过rustup安装Rust Windows msvc目标,例如,rustup target add x86_64-pc-windows-msvc
  2. 运行 cargo xwin build,例如,cargo xwin build --target x86_64-pc-windows-msvc

使用wine运行测试

安装wine后,您可以使用 cargo xwin test 命令运行测试,例如,cargo xwin test --target x86_64-pc-windows-msvc

自定义

可以使用以下环境变量或CLI选项自定义Microsoft CRT和Windows SDK。

环境变量 CLI选项 描述
XWIN_ARCH --xwin-arch 要包含的架构,默认为 x86_64,aarch64,可能的值:x86, x86_64, aarch, aarch64
XWIN_VARIANT --xwin-variant 要包含的变体,默认为 desktop,可能的值:desktop, onecore, spectre
XWIN_VERSION --xwin-version 要检索的版本,默认为16,可以是15或16的主要版本,也可以是 <major>.<minor> 版本
XWIN_CACHE_DIR --xwin-cache-dir 存放CRT和SDK文件的xwin缓存目录
XWIN_INCLUDE_DEBUG_LIBS --xwin-include-debug-libs 是否在安装时包含调试库(默认为false)。

CMake支持

一些Rust包使用cmake包来构建C/C++依赖,cargo-xwin将自动生成CMake工具链文件,以便直接进行交叉编译。

需要 ninja 来启用CMake支持。

许可证

本作品采用MIT许可证发布。许可证副本可在LICENSE文件中找到。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

此版本没有可用的源分发文件。请参阅生成分发存档的教程。

构建分发

cargo_xwin-0.17.3-py3-none-win_amd64.whl (3.6 MB 查看散列)

上传时间 Python 3 Windows x86-64

cargo_xwin-0.17.3-py3-none-win32.whl (3.1 MB 查看散列)

上传时间 Python 3 Windows x86

cargo_xwin-0.17.3-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (4.0 MB 查看散列)

上传时间 Python 3 manylinux: glibc 2.17+ ARMv7l

cargo_xwin-0.17.3-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.3 MB 查看哈希值)

上传时间: Python 3 manylinux: glibc 2.17+ ARM64

cargo_xwin-0.17.3-py3-none-manylinux_2_5_x86_64.manylinux1_x86_64.whl (4.5 MB 查看哈希值)

上传时间: Python 3 manylinux: glibc 2.5+ x86-64

cargo_xwin-0.17.3-py3-none-manylinux_2_5_i686.manylinux1_i686.whl (4.2 MB 查看哈希值)

上传时间: Python 3 manylinux: glibc 2.5+ i686

cargo_xwin-0.17.3-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl (7.9 MB 查看哈希值)

上传时间: Python 3 macOS 10.12+ universal2 (ARM64, x86-64) macOS 10.12+ x86-64 macOS 11.0+ ARM64

支持