#windows-msvc #msvc #windows #cargo #cargo-build

构建 cargo-xwin

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

51 个版本

0.17.3 2024 年 7 月 23 日
0.17.0 2024 年 6 月 13 日
0.16.4 2024 年 2 月 1 日
0.16.3 2023 年 12 月 20 日
0.7.1 2022 年 3 月 11 日

#25 in 构建工具

Download history 6055/week @ 2024-04-29 8117/week @ 2024-05-06 8072/week @ 2024-05-13 8211/week @ 2024-05-20 7889/week @ 2024-05-27 8033/week @ 2024-06-03 7725/week @ 2024-06-10 7387/week @ 2024-06-17 10203/week @ 2024-06-24 8677/week @ 2024-07-01 10398/week @ 2024-07-08 12803/week @ 2024-07-15 16272/week @ 2024-07-22 15698/week @ 2024-07-29 15369/week @ 2024-08-05 13418/week @ 2024-08-12

61,546 每月下载量
用于 maturin

MIT 许可证

43KB
886

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-tools-preview 组件或安装 llvm

安装

cargo install --locked cargo-xwin

您也可以使用 pip 进行安装

pip install cargo-xwin

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

自定义

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

环境变量 命令行选项 描述
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 xwin 缓存目录,用于存放 CRT 和 SDK 文件
XWIN_INCLUDE_DEBUG_LIBS --xwin-include-debug-libs 是否在安装中包含调试库(默认为 false)。

CMake 支持

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

ninja 是必需的 以启用 CMake 支持。

许可协议

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

依赖项

~22–41MB
~709K SLoC