Skip to content

cbindgenが生成するvoicevox_core.hをこのリポジトリに追加する #488

@qryxip

Description

@qryxip

内容

cbindgenが生成するvoicevox_core.hをこのリポジトリに追加します。

CIでのこの部分もリポジトリ内のvoicevox_core.hとの比較にします。

- 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 悪くなる点

  • 一応自動生成ファイルなので、リポジトリの見通しが悪くなるかもしれない

実現方法

  1. cbindgenが吐く.hを/crates/voicevox_core_c_api/generated/voicevox_core.hあたりに置く
  2. xtask generate-c-headerxtask update-c-headerとかに変える
  3. Actionsを更新
  4. readmeを更新

VOICEVOXのバージョン

N/A

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions