third_party_rust_bindgen/bindgen/codegen
Christian Poveda Ruiz 2be14a3345
Generate extern wrappers for inlined functions (#2335)
* Generate extern wrappers for inlined functions

If bindgen finds an inlined function and the
`--generate-extern-functions` options is enabled, then:

- It will generate two new source and header files with external
  functions that wrap the inlined functions.
- Rerun `Bindings::generate` using the new header file to include these
  wrappers in the generated bindings.

The following additional options were added:
- `--extern-function-suffix=<suffix>`: Adds <suffix> to the name of each
  external wrapper function (`__extern` is used by default).
- `--extern-functions-file-name=<name>`: Uses <name> as the file name
  for the header and source files (`extern` is used by default).
- `--extern-function-directory=<dir>`: Creates the source and header
  files inside <dir> (`/tmp/bindgen` is used by default).

The C code serialization is experimental and only supports a very
limited set of C functions.

Fixes #1090.

---------

Co-authored-by: Amanjeev Sethi <aj@amanjeev.com>
2023-02-07 10:13:48 -05:00
..
postprocessing Make postprocessing more robust 2022-10-06 14:52:29 -05:00
bitfield_unit_tests.rs split the repo into a workspace 2022-10-04 20:47:17 -05:00
bitfield_unit.rs split the repo into a workspace 2022-10-04 20:47:17 -05:00
dyngen.rs codegen: Look through typedefs to detect void return type. (#2379) 2023-01-06 13:07:28 -05:00
error.rs split the repo into a workspace 2022-10-04 20:47:17 -05:00
helpers.rs Add ParseCallbacks::process_comment (#2347) 2022-11-22 11:25:13 -05:00
impl_debug.rs split the repo into a workspace 2022-10-04 20:47:17 -05:00
impl_partialeq.rs split the repo into a workspace 2022-10-04 20:47:17 -05:00
mod.rs Generate extern wrappers for inlined functions (#2335) 2023-02-07 10:13:48 -05:00
serialize.rs Generate extern wrappers for inlined functions (#2335) 2023-02-07 10:13:48 -05:00
struct_layout.rs split the repo into a workspace 2022-10-04 20:47:17 -05:00