9个稳定版本
使用旧Rust 2015
3.0.2 | 2017年3月2日 |
---|---|
3.0.1 | 2017年2月21日 |
2.0.1 | 2017年2月19日 |
1.0.3 | 2017年2月15日 |
#16 in #合成器
280KB
6K SLoC
Fireplace
谁想在老年时取暖,就必须在年轻时建一个壁炉。
模块化Wayland窗口管理器
壁炉库
本文件夹是关于基于本库提供的功能创建自己的窗口管理器/wayland合成器的模块化壁炉库。
有关实际参考窗口管理器"壁炉"的信息,请访问此处。
文档
文档托管在GitHub pages上,因为需要特殊的构建参数 - 查看"用法" - 这使得无法在docs.rs上构建
用法
在你的Cargo.toml
fireplace_lib = "^1.0.0"
fireplace_lib提供多个功能,默认都启用
static
- 编译wlc
并静态链接render
- 启用所有渲染gl
- 意味着render
,提供OpenGL ES渲染的功能graphics
- 意味着render
和gl
,提供使用piston2d-graphics
渲染的功能conrod_ui
- 意味着render
,gl
和graphics
,提供使用conrod
渲染的功能
例如,仅使用gl
fireplace_lib = { version = "^1.0.0", default-features = false, features = ["gl"] }
构建
运行时和构建依赖项
- wlc(不使用
static
) - pixman
- wayland 1.7+
- wayland-protocols 1.7+
- libxkbcommon
- udev
- libinput
- libx11 (X11-xcb, Xfixes)
- libxcb (xcb-ewmh, xcb-composite, xcb-xkb, xcb-image, xcb-xfixes)
- libgbm (通常由大多数发行版的mesa提供)
- libdrm
- libEGL (由GPU驱动程序和mesa提供)
- libGLESv2 (由GPU驱动程序和mesa提供)
- libfontconfig1 (具有特性
ui
) - libfreetype6 (具有特性
ui
)
可选
- dbus (用于logind支持)
- systemd (用于logind支持)
构建依赖项
- fontconfig (具有特性
ui
) - libclang (>=3.8)
如果您在/usr/lib
之外的路径中安装了libclang
,则在构建二进制文件时必须提供它
LIBCLANG_PATH=/usr/lib64 cargo build --release
请参阅https://github.com/KyleMayes/clang-sys#environment-variables
示例
初始化所有 fireplace_lib
功能的最基本示例保存在fireplace_flavors/code
贡献
只要它们可以通过实现Deserialize
的struct轻松配置,我会很高兴接受新的功能或错误修复
- 通过
serde
- 如果它显著增加了编译时间,并且/或者不太可能被大量用户使用,则将其拆分为单独的
feature
- 除了有良好解释的例外之外,通过
cargo clippy
通过 - 使用
rustfmt
格式化,并使用存储库根目录中的配置 - 大致遵循现有代码的设计
如果您不确定您的贡献是否符合这些规则,请打开一个issue或pull request,让我们讨论这个问题。
请注意,您可以通过创建另一个rust库crate轻松地将个人更改保留在树外,该crate可以包含在其他分支中,如果您仍然想将其提供给公众,或者如果您只想将您的代码直接添加到您个人的二进制文件中。
这样,您永远不需要首先修改fireplace_lib
,您可以更轻松地维护您的分支,同时仍然保持最新功能。
依赖关系
~5–10MB
~170K SLoC