-
Notifications
You must be signed in to change notification settings - Fork 126
Closed
Labels
Description
内容
cbindgenが生成するvoicevox_core.hをこのリポジトリに追加します。
CIでのこの部分もリポジトリ内のvoicevox_core.hとの比較にします。
voicevox_core/.github/workflows/test.yml
Lines 118 to 123 in da84ce3
- name: Generate voicevox_core_1.h | |
run: cbindgen --crate voicevox_core_c_api -o ./voicevox_core_1.h | |
- name: Generate voicevox_core_2.h | |
run: cargo xtask generate-c-header -o ./voicevox_core_2.h | |
- name: Assert these header files are same | |
run: diff -u --color=always ./voicevox_core_{1,2}.h |
Pros 良くなる点
- スナップショットとして機能させることで、意図せぬ変更を防げる
- cbindgenの仕様変更もあるかもしれない
- もし変更する場合(例: 新クラス設計API #370)でも、手間をかけずにレビュアーが差分を見ることができる
- C APIのE2Eテストで、シグネチャを手書きする代わりにbindgen (
dynamic_library
モード)に生成させることができる- 動的にcbindgenする場合順序的に面倒 (「Rustのコンパイル」時に必要なので)。.hがリポジトリにあれば/crates/test_util上に展開するだけ
Cons 悪くなる点
- 一応自動生成ファイルなので、リポジトリの見通しが悪くなるかもしれない
実現方法
- cbindgenが吐く.hを/crates/voicevox_core_c_api/generated/voicevox_core.hあたりに置く
xtask generate-c-header
をxtask update-c-header
とかに変える- Actionsを更新
- readmeを更新
VOICEVOXのバージョン
N/A
OSの種類/ディストリ/バージョン
- Windows
- macOS
- Linux
その他
Hiroshiba and PickledChairHiroshiba