5 个不稳定版本
0.3.0 | 2024年3月28日 |
---|---|
0.2.0 | 2023年8月22日 |
0.0.6 | 2022年8月10日 |
0.0.1 | 2022年2月27日 |
0.0.0 | 2020年10月22日 |
#137 in 图像
每月25次下载
48KB
645 行
ptex-bind
针对 Ptex 的高级基于 cxx 的绑定
简介
“src
” 目录包含 ptex crate。ptex crate 提供了对低级 ptex-sys
crate 的高层安全 API。
“ptex-sys
” 目录包含 ptex-sys crate。ptex-sys 使用 cxx 来封装 C++ Ptex API。
不应直接使用 ptex-sys
crate。
用法
构建 ptex-sys
crate 需要您安装 C++ Ptex 库,以便构建 ptex
crate。
将 ptex 添加到您的 Cargo.toml
[dependencies]
ptex = "0.2.0"
ptex crate 是使用 cargo build
构建的,但您必须确保 pkg-config
能够找到您的 Ptex 安装。
如果 C++ Ptex 库安装到非系统目录,则必须配置 PKG_CONFIG_PATH
环境变量,使其指向 Ptex 安装中的 share/pkgconfig
目录。
pkg-config
被用于 ptex-sys/build.rs
以定位 Ptex
库和 C++ 头文件。如果 Ptex 安装到全局系统位置,例如 /usr/local
,则不需要配置 PKG_CONFIG_PATH
。默认情况下,pkg-config
会搜索系统位置。
开发
此存储库提供了一个 garden.yaml Garden 配方,用于自动化安装 Ptex 和构建 ptex
Rust crate 的过程。
Garden 可以用于将 Ptex 克隆到 ptex
子目录,并将 C++ Ptex 库安装到 ptex/dist
。
在运行命令时,Garden 会配置 PKG_CONFIG_PATH
环境变量,使其包含 $PWD/ptex/dist/share/pkgconfig
。
运行以下 Garden 命令以启动包含 Ptex 的开发环境,以便可以构建 ptex
crate。
garden grow ptex
garden build all
这些命令执行以下步骤
-
garden grow
使用在garden.yaml
中配置的 URL 将 Ptex 克隆到ptex
目录。 -
garden build all
构建 C++ Ptex 库,将其安装到ptex/dist
,配置PKG_CONFIG_PATH
和LD_LIBRARY_PATH
以指向ptex/dist
,并使用cargo build
构建ptex
crate。
测试
位于 tests
目录的测试套件用于验证 ptex
crate。Garden 配方包含 test
和 check
命令,用于运行测试套件和执行源代码的检查。
# Run tests
garden test
# Run checks and linters
garden check
工作流程
在此存储库中的典型开发工作流程循环包含以下步骤
-
构建 Ptex C++ 库。(
garden build ptex
) -
构建
ptex-sys
低级 Ptex 绑定。(garden build ptex-sys
) -
构建高级
ptex
绑定。(garden build
或garden build ptex
) -
在整个 crate 中运行测试。(
garden test
) -
在整个 crate 中运行检查。(
garden check
)
garden.yaml
配方提供了一个命令,用于一次性执行所有上述步骤。
# Build, test and check everything.
garden dev
版本
ptex
crate 目前跟踪最新的稳定 Ptex 版本。
当有新的主要或次要 Ptex 发布时,将创建用于旧版本的分支。
此存储库中的标签对应于 ptex
crate 版本。一旦 ptex
crate 功能完善,将使用与底层 C++ Ptex 库匹配的非 v0 版本号对 ptex
crate 进行标记和发布。
链接
依赖项
~0.8–2.3MB
~36K SLoC