#gtk #user-interface #ui #windows #macos

sys libui-ffi

轻松构建对 'libui-ng' 的底层绑定

4个版本 (重大更新)

使用旧的Rust 2015

0.3.0 2023年8月6日
0.2.0 2023年4月28日
0.1.0 2023年3月29日
0.0.0 2023年3月18日

#226 in #gtk


用于 libui

MIT 许可证

1.5MB
43K SLoC

C 19K SLoC // 0.1% comments C++ 14K SLoC // 0.1% comments Objective-C 10K SLoC // 0.1% comments Rust 313 SLoC // 0.1% comments Go 133 SLoC // 0.0% comments Swift 68 SLoC // 0.0% comments GNU Style Assembly 45 SLoC Python 24 SLoC // 0.1% comments Shell 18 SLoC // 0.1% comments Batch 8 SLoC

包含 (ZIP文件, 6KB) cmocka_1.1.5-4_patch.zip

libui-ffi

为在libui的高层Rust版本中使用自动生成的libui-ng绑定。它不打算直接使用。与其他绑定相比,目标是减少构建工具依赖项,以简化安装和编译。

先决条件 & 构建

需要编译器、链接器、git和UI平台SDK。不需要CMake、Python或Meson。

Linux

  • libgtk-3-dev (debian软件包) - UI平台头文件
  • libclang (debian软件包) - 用于生成 libui-ng 绑定。

Windows

  • MSVC (通过Windows SDK或Visual Studio) - 平台头文件、编译器和链接器。
  • LLVM - 用于生成 libui-ng 绑定。

为什么使用libclang / LLVM?

Bindgen依赖于libclang,但它没有提供它

MinGW能否代替MSVC?

不确定。使用MinGW-64代替MSVC可以编译和链接。使用MinGW-64版本 <= 4.X 编译的libui应用程序将无法启动,因为MinGW缺少 TaskDialog()。后续版本应能正常工作。

补丁

此crate对libui-ng应用了一些补丁,以提供更好的体验。请参阅 patches 目录。

  • allow_small_pbar.patch - 将进度条的最低宽度减少,以便在Windows上更好地匹配GTK和Cocoa进度条的行为。

依赖项

~0–3MB
~46K SLoC