diff options
| author | Mike Martin <[email protected]> | 2020-11-27 14:59:39 -0600 |
|---|---|---|
| committer | Amir Rajan <[email protected]> | 2020-12-06 09:49:41 -0600 |
| commit | c5bc896a121d282eb2281f2fa269cffaa2e881d2 (patch) | |
| tree | c40ba20ea39045b211de2c16d84a9becf7959ad5 | |
| parent | 0bb92047f242a176ac56b8263d80ef8ad9d081b6 (diff) | |
| download | dragonruby-game-toolkit-contrib-c5bc896a121d282eb2281f2fa269cffaa2e881d2.tar.gz dragonruby-game-toolkit-contrib-c5bc896a121d282eb2281f2fa269cffaa2e881d2.zip | |
Updates binding codegen to remove warnings and errors
| -rw-r--r-- | samples/13_rust_extensions/01_basics/app/ext.h | 3 | ||||
| -rw-r--r-- | samples/13_rust_extensions/01_basics/native/ext-bindings.c | 10 | ||||
| -rwxr-xr-x | samples/13_rust_extensions/01_basics/native/macos/ext.dylib | bin | 50208 -> 50208 bytes | |||
| -rwxr-xr-x | samples/13_rust_extensions/01_basics/pre.sh | 7 | ||||
| -rw-r--r-- | samples/13_rust_extensions/01_basics/rust-basic-crate/cbindgen.toml | 3 |
5 files changed, 13 insertions, 10 deletions
diff --git a/samples/13_rust_extensions/01_basics/app/ext.h b/samples/13_rust_extensions/01_basics/app/ext.h index 6f7b750..a34e842 100644 --- a/samples/13_rust_extensions/01_basics/app/ext.h +++ b/samples/13_rust_extensions/01_basics/app/ext.h @@ -2,5 +2,6 @@ #include <stdbool.h> #include <stdint.h> #include <stdlib.h> +#include "dragonruby.h" -int64_t square(int64_t x); +DRB_FFI int64_t square(int64_t x); diff --git a/samples/13_rust_extensions/01_basics/native/ext-bindings.c b/samples/13_rust_extensions/01_basics/native/ext-bindings.c index 9d8c085..6f053d4 100644 --- a/samples/13_rust_extensions/01_basics/native/ext-bindings.c +++ b/samples/13_rust_extensions/01_basics/native/ext-bindings.c @@ -33,19 +33,19 @@ static struct RClass *(*mrb_exc_get_f)(mrb_state *, const char *); static void drb_free_foreign_object_indirect(mrb_state *state, void *pointer) { drb_free_foreign_object_f(state, pointer); } -static int drb_ffi__ZTSi_FromRuby(mrb_state *state, mrb_value self) { +static int64_t drb_ffi__ZTSx_FromRuby(mrb_state *state, mrb_value self) { return mrb_fixnum(self); } -static mrb_value drb_ffi__ZTSi_ToRuby(mrb_state *state, int value) { +static mrb_value drb_ffi__ZTSx_ToRuby(mrb_state *state, int64_t value) { return mrb_fixnum_value(value); } static mrb_value drb_ffi_square_Binding(mrb_state *state, mrb_value value) { mrb_value *args = 0; mrb_int argc = 0; mrb_get_args_f(state, "*", &args, &argc); - int x_0 = drb_ffi__ZTSi_FromRuby(state, args[0]); - int ret_val = square(x_0); - return drb_ffi__ZTSi_ToRuby(state, ret_val); + int64_t x_0 = drb_ffi__ZTSx_FromRuby(state, args[0]); + int64_t ret_val = square(x_0); + return drb_ffi__ZTSx_ToRuby(state, ret_val); } static int drb_ffi_init_indirect_functions(void *(*lookup)(const char *)); DRB_FFI_EXPORT diff --git a/samples/13_rust_extensions/01_basics/native/macos/ext.dylib b/samples/13_rust_extensions/01_basics/native/macos/ext.dylib Binary files differindex 018b9fc..f97fb3a 100755 --- a/samples/13_rust_extensions/01_basics/native/macos/ext.dylib +++ b/samples/13_rust_extensions/01_basics/native/macos/ext.dylib diff --git a/samples/13_rust_extensions/01_basics/pre.sh b/samples/13_rust_extensions/01_basics/pre.sh index daf23f9..d1a2385 100755 --- a/samples/13_rust_extensions/01_basics/pre.sh +++ b/samples/13_rust_extensions/01_basics/pre.sh @@ -12,13 +12,12 @@ fi DRB_ROOT=../../.. mkdir -p native/$PLATFORM -pushd rust-basic-crate +cd rust-basic-crate cargo build --release cbindgen --config cbindgen.toml --crate rust-basic-crate --output ../app/ext.h -popd +cd ../ -$DRB_ROOT/dragonruby-bind --output=native/ext-bindings.c app/ext.h -echo "\nIgnore the above error about #include\n" +$DRB_ROOT/dragonruby-bind --compiler-flags="-isysroot $(xcrun --show-sdk-path) $(clang -E -xc++ -Wp,-v /dev/null 2>&1 | sed -n '/^#include <...>/,/^End of search/p'| sed '1d;$d;s/\/\(.*\)/-I \/\1/;s/ (framework directory)//') -isystem $DRB_ROOT/include -I." --output=native/ext-bindings.c app/ext.h clang \ -isystem $DRB_ROOT/include -I. \ -fPIC -shared native/ext-bindings.c rust-basic-crate/target/release/librust_basic_crate.$DLLEXT -o native/$PLATFORM/ext.$DLLEXT diff --git a/samples/13_rust_extensions/01_basics/rust-basic-crate/cbindgen.toml b/samples/13_rust_extensions/01_basics/rust-basic-crate/cbindgen.toml index 08094f2..9b95833 100644 --- a/samples/13_rust_extensions/01_basics/rust-basic-crate/cbindgen.toml +++ b/samples/13_rust_extensions/01_basics/rust-basic-crate/cbindgen.toml @@ -1 +1,4 @@ language = "C" +includes = ["dragonruby.h"] +[fn] +prefix = "DRB_FFI" |
