summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorMike Martin <[email protected]>2020-11-27 14:59:39 -0600
committerAmir Rajan <[email protected]>2020-12-06 09:49:41 -0600
commitc5bc896a121d282eb2281f2fa269cffaa2e881d2 (patch)
treec40ba20ea39045b211de2c16d84a9becf7959ad5
parent0bb92047f242a176ac56b8263d80ef8ad9d081b6 (diff)
downloaddragonruby-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.h3
-rw-r--r--samples/13_rust_extensions/01_basics/native/ext-bindings.c10
-rwxr-xr-xsamples/13_rust_extensions/01_basics/native/macos/ext.dylibbin50208 -> 50208 bytes
-rwxr-xr-xsamples/13_rust_extensions/01_basics/pre.sh7
-rw-r--r--samples/13_rust_extensions/01_basics/rust-basic-crate/cbindgen.toml3
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
index 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
Binary files differ
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"