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次下载

Apache-2.0

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_PATHLD_LIBRARY_PATH 以指向 ptex/dist,并使用 cargo build 构建 ptex crate。

测试

位于 tests 目录的测试套件用于验证 ptex crate。Garden 配方包含 testcheck 命令,用于运行测试套件和执行源代码的检查。

# Run tests
garden test

# Run checks and linters
garden check

工作流程

在此存储库中的典型开发工作流程循环包含以下步骤

  • 构建 Ptex C++ 库。(garden build ptex)

  • 构建 ptex-sys 低级 Ptex 绑定。(garden build ptex-sys)

  • 构建高级 ptex 绑定。(garden buildgarden 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