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次
1MB
20K SLoC
如果你对使用 Rust 开发 PS Vita 感兴趣,请查看组织文档和Rust on Sony PlayStation Vita 书籍。还有示例。
vitarsdk-sys
此包导出对在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之前的版本升级的,请参阅此评论中的迁移指南。
致谢
- VitaSDK团队为工具链、vitasdk本身等。
- rust-bindgen贡献者使自动生成的绑定成为可能。
- Martin Larralde为psp2-sys,我相信这最初激发了我创建此crate的灵感。
许可证
此crate(库)根据MIT许可证或Apache许可证(版本2.0)分发,由您选择。有关条款,请参阅LICENSE-MIT
和LICENSE-APACHE
。