#vitasdk #vita #ffi #psvita #playstation

sys vitarsdk-sys

对 vitarsdk 的原始绑定

7 个版本

0.3.3 2024年2月25日
0.3.2 2023年10月6日
0.3.0 2023年9月29日
0.2.0 2023年9月13日
0.1.1 2023年6月16日

#2#playstation

每月下载量36次

MIT/Apache

1MB
20K SLoC

如果你对使用 Rust 开发 PS Vita 感兴趣,请查看组织文档Rust on Sony PlayStation Vita 书籍。还有示例

vitarsdk-sys

docs.rs Crates.io License: MIT

此包导出对在vitarsdk中可用的函数的绑定,并根据启用功能静态链接到其存根库。其官方文档在此,绑定由 vitasdk 的vita-headers存储库自动生成。所需功能以用于哪个函数可以在https://docs.rs/vitasdk-sys上找到。

使用此包的示例在examples/std-hello-world

要使用它,你需要有可用的 vitarsdk 并将环境变量 VITASDK 设置为其位置。例如:

$ export VITASDK=/opt/vitasdk

功能

存根 (*_stub)

要使用此包中提供的任何函数,您需要启用相关的功能,这将导致链接所需的存根。您可以通过查看docs.rs/vitasdk-sys来确定任何存根需要哪些函数。

示例:要查找使用 sceDisplaySetFrameBuf 所需的存根,在 docs.rs 上搜索它。您会在那里找到 Available on crate feature SceDisplay_stub only.,这意味着您需要启用 SceDisplay_stub 才能使用它。

ℹ️ 注意:有一些(目前为4个)冲突的存根,这些存根定义了由编译器内置或 std 定义的符号。这些功能的列表可以在此处找到。

vitarsdk-utils

此功能仅启用 vitarsdk 提供的一些功能。就像存根一样,您可以通过查看 docs.rs 来确定哪些功能需要它。

bindgen

使bindgen功能在编译时使用系统 vitarsdk 的头文件(在 $VITASDK)生成绑定,而不是使用预生成的绑定。

要使用此功能,您还需要满足bindgen的要求,这些要求可能已经存在于您的系统中。

手动更新子模块

更新

要更新头文件,我们有一个在GitHub Actions上每年或按需运行的作业,该作业将创建一个PR。如果您想手动更新,可以按照以下步骤操作

手动

使用子模块(C头文件)克隆仓库

$ git clone --recurse-submodules https://github.com/pheki/vitasdk-sys.git

如果仓库已经克隆,请使用以下命令更新子模块

$ git submodule update --init --recursive

要更新头文件,请转到vita-headers子模块,并使用常规方式更新它

$ cd vita-headers
$ git pull
$ cd ..

然后运行cargo run -p vitasdk-sys-build-util -- bindgen

ℹ️ 注意:CI当前使用的LLVM版本为16。有时生成的绑定可能因LLVM版本不同而略有差异。

版本控制

对于此crate,通常适用semver规则,但请注意,用于生成绑定的头文件版本与您机器上安装的vitasdk版本之间可能存在差异。

更新

要更新版本,您可以在CHANGELOG.md中查找破坏性更改。如果您是从版本0.3之前的版本升级的,请参阅此评论中的迁移指南。

致谢

许可证

此crate(库)根据MIT许可证或Apache许可证(版本2.0)分发,由您选择。有关条款,请参阅LICENSE-MITLICENSE-APACHE

无运行时依赖项