14个版本 (6个重大变更)
0.7.0 | 2023年1月28日 |
---|---|
0.6.0 | 2023年1月27日 |
0.5.0 | 2022年12月14日 |
0.4.5 | 2022年5月21日 |
0.1.0 | 2022年4月19日 |
#665 in 操作系统
59 每月下载量
用于 boing
6.5MB
145K SLoC
包含(自动工具混淆代码,1KB) configure
libui-ng-sys
Rust绑定到 libui-ng。
用法
将 libui-ng-sys crate 从 crates.io 添加到您的 Cargo.toml
[dependencies]
libui-ng-sys = "0.7"
构建时,libui-ng-sys 构建脚本向编译器发出链接器标志,将 libui-ng 链接到您的构建产品,无论是可执行文件还是其他库。
probe-system-libui
功能
默认情况下,libui-ng-sys 搜索现有的 libui-ng 安装以动态链接。如果 libui-ng 未安装,它将从源代码构建并静态链接。可以通过禁用 probe-system-libui
功能来修改此行为,这将导致始终从源代码构建 libui-ng
[dependencies.libui-ng-sys]
default-features = false
构建系统
默认情况下,libui-ng-sys 供应 Ninja 构建系统,构建 Ninja,然后使用 Ninja 构建 libui-ng。如果您更喜欢不同的构建系统,libui-ng-sys 分别在 build-with-msvc
和 build-with-xcode
功能下提供对 MSVC 和 Xcode 的支持。您可以在 Cargo.toml 中像这样启用它们
[dependencies.libui-ng-sys]
features = ["build-with-msvc"] # Or "build-with-xcode"!
构建要求
如果要从源代码构建 libui-ng,则主机环境必须提供至少一个工作的 C 编译器、链接器和 Python 安装(≥ v3.7)。
以下各节列出了平台特定的附加构建要求。
Linux构建要求
需要 GTK3(≥ v3.10.0)。目前不支持 GTK4。
可以在基于 APT 的系统上使用以下命令安装 GTK
apt-get install libgtk-3-dev
Windows构建要求
需要 Windows 10 或 11 SDK。
SDK 可以从 Visual Studio 安装程序 获取。
Windows上的常见错误
如果从源码构建 libui-ng,所有编译器组件都必须可从您的 $PATH
访问。最简单的方法是从开发者命令提示符或开发者 PowerShell 中构建 libui-ng-sys。如果 libui-ng-sys 怀疑缺少一些编译器组件,它将发出警告以使用开发者外壳。
但,小心打开正确的开发者外壳!在 64 位 Windows 上,包含 "x64" 的外壳是您想要的。它可能看起来像这样
x64 Native Tools Command Prompt for VS 2022
如果 libui-ng-sys 使用错误的工具链进行编译,libui-ng 将无法链接,您将收到这些类似的神秘链接器错误
basic.basic.6dc1d4cc-cgu.0.rcgu.o : error LNK2019: unresolved external symbol uiInit referenced in function _ZN5basic4main17h947588e76d3f9c99E
供应商依赖项
libui-ng-sys 将 libui-ng、Meson 和 Ninja 作为 Git 子模块进行供应商。这些子模块的最新提交哈希和名义版本在每个 libui-ng-sys 版本中都有记录。
0.7.0
依赖项 | 提交哈希 | 名义版本 |
---|---|---|
libui-ng | 8c82e737eea2f8ab3667e227142abd2fd221f038 |
alpha4.1-697 |
Meson | 09ad4e28f1a59ab3d87de6f36540a108e836cfe5 |
0.62.0-112 |
Ninja | 25cdbae0ee1270a5c8dd6ba67696e29ad8076919 |
1.11.0^2~2 |
0.2.0–0.6.0
依赖项 | 提交哈希 | 名义版本 |
---|---|---|
libui-ng | 42641e3d6bfb2c49ca4cc3b03d8ae277d9841a5d |
alpha4.1-479 |
Meson | 09ad4e28f1a59ab3d87de6f36540a108e836cfe5 |
0.62.0-112 |
Ninja | 25cdbae0ee1270a5c8dd6ba67696e29ad8076919 |
1.11.0^2~2 |
0.1.0
依赖项 | 提交哈希 | 名义版本 |
---|---|---|
libui-ng | 42641e3d6bfb2c49ca4cc3b03d8ae277d9841a5d |
alpha4.1-479 |
致谢
libui-ng-sys 以及其姊妹项目 boing 是 @NoraCodes' libui-rs 的 -ng 类似物,这些项目比这些crate早两年。尽管它与 libui-ng-sys 或 boing 没有共享任何共同代码,并且是独立开发的,但 libui-rs 仍然启发了这些crate,我建议您也查看 libui-rs 以及 Nora 的其他作品。
依赖项
~0–16MB
~155K SLoC