Update examples for Rust master
This commit is contained in:
@@ -10,12 +10,11 @@ all: target/double
|
||||
target:
|
||||
mkdir -p $@
|
||||
|
||||
target/double: target/main.o target/libdouble_input.a
|
||||
target/double: target/main.o target/debug/libdouble_input.a
|
||||
$(CC) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
target/libdouble_input.a: src/lib.rs Cargo.toml
|
||||
target/debug/libdouble_input.a: src/lib.rs Cargo.toml
|
||||
cargo build
|
||||
(cd target && ln -nsf debug/libdouble_input-*.a libdouble_input.a)
|
||||
|
||||
target/main.o: src/main.c | target
|
||||
$(CC) -o $@ -c $<
|
||||
|
||||
@@ -4,12 +4,11 @@ else
|
||||
EXT := so
|
||||
endif
|
||||
|
||||
all: target/libdouble_input.$(EXT) node_modules/ffi
|
||||
all: target/debug/libdouble_input.$(EXT) node_modules/ffi
|
||||
node src/main.js
|
||||
|
||||
target/libdouble_input.$(EXT): src/lib.rs Cargo.toml
|
||||
target/debug/libdouble_input.$(EXT): src/lib.rs Cargo.toml
|
||||
cargo build
|
||||
(cd target && ln -nsf debug/libdouble_input-*$(EXT) libdouble_input.$(EXT))
|
||||
|
||||
node_modules/ffi:
|
||||
npm install ffi
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
var ffi = require('ffi');
|
||||
|
||||
var lib = ffi.Library('target/libdouble_input', {
|
||||
var lib = ffi.Library('target/debug/libdouble_input', {
|
||||
'double_input': [ 'int', [ 'int' ] ]
|
||||
});
|
||||
|
||||
|
||||
@@ -4,12 +4,11 @@ else
|
||||
EXT := so
|
||||
endif
|
||||
|
||||
all: target/libdouble_input.so
|
||||
all: target/debug/libdouble_input.$(EXT)
|
||||
perl src/main.pl
|
||||
|
||||
target/libdouble_input.so: src/lib.rs Cargo.toml
|
||||
target/debug/libdouble_input.$(EXT): src/lib.rs Cargo.toml
|
||||
cargo build
|
||||
(cd target && ln -nsf debug/libdouble_input-*$(EXT) libdouble_input.so)
|
||||
|
||||
clean:
|
||||
rm -rf target
|
||||
|
||||
@@ -2,7 +2,7 @@ use v5.10;
|
||||
use FFI::Raw;
|
||||
|
||||
my $double_input = FFI::Raw->new(
|
||||
"target/libdouble_input.so",
|
||||
"target/debug/libdouble_input.so",
|
||||
'double_input',
|
||||
FFI::Raw::int, # return value
|
||||
FFI::Raw::int # arg #1
|
||||
|
||||
@@ -4,12 +4,11 @@ else
|
||||
EXT := so
|
||||
endif
|
||||
|
||||
all: target/libdouble_input.so
|
||||
all: target/debug/libdouble_input.$(EXT)
|
||||
python src/main.py
|
||||
|
||||
target/libdouble_input.so: src/lib.rs Cargo.toml
|
||||
target/debug/libdouble_input.$(EXT): src/lib.rs Cargo.toml
|
||||
cargo build
|
||||
(cd target && ln -nsf debug/libdouble_input-*$(EXT) libdouble_input.so)
|
||||
|
||||
clean:
|
||||
rm -rf target
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
from ctypes import cdll
|
||||
from sys import platform
|
||||
|
||||
lib = cdll.LoadLibrary('target/libdouble_input.so')
|
||||
if platform == "darwin":
|
||||
ext = "dylib"
|
||||
else:
|
||||
ext = "so"
|
||||
|
||||
lib = cdll.LoadLibrary('target/debug/libdouble_input.' + ext)
|
||||
double_input = lib.double_input
|
||||
|
||||
input = 4
|
||||
|
||||
@@ -4,12 +4,11 @@ else
|
||||
EXT := so
|
||||
endif
|
||||
|
||||
all: target/libdouble_input.so
|
||||
all: target/debug/libdouble_input.$(EXT)
|
||||
ruby src/main.rb
|
||||
|
||||
target/libdouble_input.so: src/lib.rs Cargo.toml
|
||||
target/debug/libdouble_input.$(EXT): src/lib.rs Cargo.toml
|
||||
cargo build
|
||||
(cd target && ln -nsf debug/libdouble_input-*$(EXT) libdouble_input.so)
|
||||
|
||||
clean:
|
||||
rm -rf target
|
||||
|
||||
@@ -1,8 +1,14 @@
|
||||
require 'ffi'
|
||||
|
||||
if RUBY_PLATFORM.include?('darwin')
|
||||
EXT = 'dylib'
|
||||
else
|
||||
EXT = 'so'
|
||||
end
|
||||
|
||||
module Hello
|
||||
extend FFI::Library
|
||||
ffi_lib 'target/libdouble_input.so'
|
||||
ffi_lib 'target/debug/libdouble_input.' + EXT
|
||||
attach_function :double_input, [ :int ], :int
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user