1 个不稳定版本
0.1.0 | 2021年5月23日 |
---|
#536 在 构建实用工具
在 screen-selector 中使用
9KB
110 行
gbuild
一个用于在基于 glib/gio/gtk 的库和应用程序中执行常规非编译构建任务的库。
目前它仅支持将 gio GResources 嵌入最终二进制文件。
使用 gbuild
首先,您需要为您的 crate 添加一个构建脚本 (build.rs
),并通过以下方式将此 crate 添加到您的 Cargo.toml
中:
[build-dependencies]
gbuild = "0.1"
接下来,您将想要编写一个类似以下的构建脚本
// build.rs
fn main() {
gbuild::Resource::builder()
.src_dir("src")
.definition_file("src/br.kov.duplikat.gresource.xml")
.build()
.expect("Bad arguments for gresource compilation")
.compile();
}
这将从 xml
描述中生成 .c
文件,构建它,并将其链接到您的 rust 二进制文件中,从而使您能够在不进行任何进一步注册的情况下使用代码中的资源,例如
fn load_readme() -> Result<String, String>
let gfile = gio::File::for_uri("resource:///br/kov/duplikat/README");
match gfile.load_contents(gio::NONE_CANCELLABLE) {
Ok((bytes, _string)) => {
std::str::from_utf8(&bytes).unwrap().to_string()
},
Err(e) => format!("Could not load test file: {}", e),
}
外部配置
此 crate 使用 pkg-config
二进制文件(而不是 crate)来获取包含和链接 gio-2.0
的标志,因此它将受到影响 pkg-config
的任何环境变量的影响。
对于构建生成的 C 文件,此 crate 使用 cc
crate,它也可能受到各种环境变量的影响。请注意,目前此 crate 在构建资源 c
文件时将替换任何现有的 CFLAGS
变量。
许可证
本项目采用 MIT 许可证,请参阅 (LICENSE 文件)。
依赖项
~11MB
~232K SLoC