112a9d9c8Sopenharmony_ci# Create a `wrapper.h` Header
212a9d9c8Sopenharmony_ci
312a9d9c8Sopenharmony_ciThe `wrapper.h` file will include all the various headers containing
412a9d9c8Sopenharmony_cideclarations of structs and functions we would like bindings for. In the
512a9d9c8Sopenharmony_ciparticular case of `bzip2`, this is pretty easy since the entire public API is
612a9d9c8Sopenharmony_cicontained in a single header. For a project like [SpiderMonkey][spidermonkey],
712a9d9c8Sopenharmony_ciwhere the public API is split across multiple header files and grouped by
812a9d9c8Sopenharmony_cifunctionality, we'd want to include all those headers we want to bind to in this
912a9d9c8Sopenharmony_cisingle `wrapper.h` entry point for `bindgen`.
1012a9d9c8Sopenharmony_ci
1112a9d9c8Sopenharmony_ciHere is our `wrapper.h`:
1212a9d9c8Sopenharmony_ci
1312a9d9c8Sopenharmony_ci```c
1412a9d9c8Sopenharmony_ci#include <bzlib.h>
1512a9d9c8Sopenharmony_ci```
1612a9d9c8Sopenharmony_ci
1712a9d9c8Sopenharmony_ciThis is also where we would add any [replacement types](./replacing-types.md),
1812a9d9c8Sopenharmony_ciif we were using some.
1912a9d9c8Sopenharmony_ci
2012a9d9c8Sopenharmony_ci[spidermonkey]: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey/How_to_embed_the_JavaScript_engine
21