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 操作系统

Download history 5/week @ 2024-03-09 1/week @ 2024-03-16 41/week @ 2024-03-30 7/week @ 2024-04-06 4/week @ 2024-05-18

59 每月下载量
用于 boing

MPL-2.0 许可证

6.5MB
145K SLoC

Python 71K SLoC // 0.2% comments C++ 33K SLoC // 0.1% comments C 25K SLoC // 0.1% comments Objective-C 10K SLoC // 0.1% comments Rust 1K SLoC // 0.1% comments AsciiDoc 1K SLoC FORTRAN Modern 465 SLoC // 0.0% comments Vim Script 409 SLoC // 0.1% comments Shell 404 SLoC // 0.2% comments Vala 383 SLoC // 0.0% comments CUDA 322 SLoC D 291 SLoC // 0.0% comments GNU Style Assembly 231 SLoC // 0.0% comments Mustache 204 SLoC Java 145 SLoC Go 133 SLoC // 0.0% comments Swift 113 SLoC // 0.0% comments PowerShell 95 SLoC // 0.2% comments TypeScript 72 SLoC Cython 59 SLoC Forge Config 55 SLoC C# 54 SLoC Emacs Lisp 39 SLoC // 0.5% comments RPM Specfile 32 SLoC .NET Resource 31 SLoC Objective-C++ 29 SLoC Coq 28 SLoC JavaScript 22 SLoC Batch 20 SLoC XSL 19 SLoC // 0.4% comments Assembly 15 SLoC // 0.3% comments INI 15 SLoC FORTRAN Legacy 13 SLoC Happy 9 SLoC Automake 8 SLoC // 0.5% comments LLVM 4 SLoC

包含(自动工具混淆代码,1KB) configure

libui-ng-sys

crates.io docs MPL 2.0 licensed

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-msvcbuild-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-syslibui-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-sysboing 没有共享任何共同代码,并且是独立开发的,但 libui-rs 仍然启发了这些crate,我建议您也查看 libui-rs 以及 Nora 的其他作品。

我还应该感谢 @cody271@szannilibui-ng 的帮助和贡献。

依赖项

~0–16MB
~155K SLoC