Merge branch 'main' of ssh://code.booklordofthe.dev:2003/Booklordofthedings/Caa
This commit is contained in:
commit
deacc20b41
1 changed files with 35 additions and 2 deletions
37
README.md
37
README.md
|
@ -1,3 +1,36 @@
|
|||
# Caa
|
||||
# Caa - *Generate Beef bindings from C Headers*
|
||||
|
||||
Generate Beef bindings out of C headers
|
||||
This program is still in development and might not work fully, see [TODO](#todo) for more info on whats missing
|
||||
|
||||
## Dependencies
|
||||
- [Libclang Beef bindings](https://code.booklordofthe.dev/Booklordofthedings/Libclang-beef)
|
||||
- [Libclang.dll & Libclang.lib](https://releases.llvm.org/download.html) *(contained in the LLVM download)*
|
||||
|
||||
## CLI
|
||||
The CLI program is extremely simple and doesnt have much customizeability.
|
||||
The process is as follows:
|
||||
- It asks you for the amount of parameters to pass into clang
|
||||
- You pass in the parameters one after another *(The first one needs to be the file path to the header)*
|
||||
- The program parses the header *(For debugging purposes it lists all tokens that where not parsed)*
|
||||
- You input the output file path
|
||||
- File is output, program is stopped
|
||||
|
||||
## API
|
||||
- Binding.Bind => Takes in String[] args and generates the in memory model of the header
|
||||
- Binding.Generate => Creates the string representation and outputs it into the target file
|
||||
- Binding.CursorHandles => Dictionary containing handlers for specific cursor types, can be extended
|
||||
- Binding.Options => General Options for binding and generating
|
||||
|
||||
## Binding.Options
|
||||
- Namespace => What to name the namespace and what to remove infront of all fields and names
|
||||
- RemoveEnumStart => Try to find a common start to enum members and remove it
|
||||
- LowercaseEnums => Outputs all enum fields in lowercase to make it easier to beefify it
|
||||
|
||||
## TODO
|
||||
- Error handling when opening the header
|
||||
- Remove the hack, and get Args to actually work on line 31 in Binding
|
||||
- Booleans should be parsed to Beef bools
|
||||
- Some libraries (sqlite) use defines for enums/constants. Find a way to parse these
|
||||
- Parse the output into multiple files
|
||||
- Type parse function pointers correctly
|
||||
- Struct fields inside of structs seemingly dont work yet
|
Loading…
Add table
Reference in a new issue