Setup Bindings Generation

This commit is contained in:
GuilhermeWerner
2021-01-21 12:39:50 -03:00
parent 89085ce699
commit 74ef11d765
5 changed files with 121 additions and 1 deletions

2
.gitignore vendored
View File

@ -9,7 +9,7 @@ imgui.ini
# Cargo Files # Cargo Files
Cargo.lock Cargo.lock
Engine/Source/Header.h Source/Library.h
# Mac OSX # Mac OSX

113
Config/Bindings.toml Normal file
View File

@ -0,0 +1,113 @@
# This is a template cbindgen.toml file with all of the default values.
# Some values are commented out because their absence is the real default.
#
# See https://github.com/eqrion/cbindgen/blob/master/docs.md#cbindgentoml
# for detailed documentation of every option here.
language = "C"
############## Options for Wrapping the Contents of the Header #################
# header = "// Copyright (c) GuilhermeWerner"
# trailer = "/* Text to put at the end of the generated file */"
# include_guard = "my_bindings_h"
pragma_once = true
# autogen_warning = "/* Warning, this file is autogenerated by cbindgen. Don't modify this manually. */"
include_version = false
namespace = "Library"
namespaces = []
using_namespaces = []
sys_includes = []
includes = []
no_includes = false
cpp_compat = true
# A list of lines to add verbatim after the includes block
#after_includes = "MY_DEFINITION"
############################ Code Style Options ################################
braces = "NextLine"
line_length = 100
tab_width = 4
line_endings = "LF" # also "CR", "CRLF", "Native"
############################# Codegen Options ##################################
style = "tag"
sort_by = "Name" # default for `fn.sort_by` and `const.sort_by`
usize_is_size_t = true
[defines]
# "target_os = freebsd" = "DEFINE_FREEBSD"
# "feature = serde" = "DEFINE_SERDE"
[export]
include = []
exclude = []
# prefix = "CAPI_"
item_types = []
renaming_overrides_prefixing = false
[export.rename]
[export.body]
[export.mangle]
[fn]
# rename_args = "PascalCase"
# must_use = "MUST_USE_FUNC"
# no_return = "NO_RETURN"
# prefix = "START_FUNC"
# postfix = "END_FUNC"
args = "auto"
sort_by = "Name"
[struct]
# rename_fields = "PascalCase"
# must_use = "MUST_USE_STRUCT"
derive_constructor = false
derive_eq = false
derive_neq = false
derive_lt = false
derive_lte = false
derive_gt = false
derive_gte = false
[enum]
# rename_variants = "PascalCase"
# must_use = "MUST_USE_ENUM"
add_sentinel = false
prefix_with_name = false
derive_helper_methods = false
derive_const_casts = false
derive_mut_casts = false
# cast_assert_name = "ASSERT"
derive_tagged_enum_destructor = false
derive_tagged_enum_copy_constructor = false
enum_class = true
private_default_tagged_enum_constructor = false
[const]
allow_static_const = true
allow_constexpr = false
sort_by = "Name"
[macro_expansion]
bitflags = false
############## Options for How Your Rust library Should Be Parsed ##############
[parse]
parse_deps = false
# include = []
exclude = []
clean = false
extra_bindings = []
[parse.expand]
crates = []
all_features = false
default_features = true
features = []

1
GenerateBindings.bat Normal file
View File

@ -0,0 +1 @@
cbindgen --config .\Config\Bindings.toml --crate Library --output Source\Library.h

3
GenerateBindings.command Normal file
View File

@ -0,0 +1,3 @@
#!/bin/zsh
cbindgen --config ./Config/Bindings.toml --crate Library --output Source/Library.h

3
GenerateBindings.sh Normal file
View File

@ -0,0 +1,3 @@
#!/bin/bash
cbindgen --config ./Config/Bindings.toml --crate Library --output Source/Library.h