mirror of
https://github.com/rubyjs/mini_racer
synced 2023-03-27 23:21:28 -04:00
make this thing work on a mac
This commit is contained in:
parent
296efa9290
commit
4deaa0d47e
3 changed files with 14 additions and 8 deletions
|
@ -33,13 +33,18 @@ LIBV8_COMPATIBILITY = '~> 5.0.71.35.0'
|
|||
#
|
||||
# Libv8.configure_makefile
|
||||
|
||||
NODE_PATH = "/home/sam/Source/libv8"
|
||||
#NODE_PATH = "/home/sam/Source/libv8"
|
||||
NODE_PATH = "/Users/sam/Source/libv8"
|
||||
NODE_INCLUDE = NODE_PATH + "/vendor/v8/include"
|
||||
NODE_LIBS = NODE_PATH + "/vendor/v8/out/x64.release/obj.target/tools/gyp"
|
||||
#NODE_LIBS = NODE_PATH + "/vendor/v8/out/x64.release/obj.target/tools/gyp"
|
||||
NODE_LIBS = NODE_PATH + "/vendor/v8/out/x64.release"
|
||||
|
||||
$INCFLAGS.insert 0, "-I#{NODE_INCLUDE} -I#{NODE_PATH}/vendor/v8 "
|
||||
$LDFLAGS.insert 0, " #{NODE_LIBS}/libv8_base.a #{NODE_LIBS}/libv8_libbase.a #{NODE_LIBS}/libv8_snapshot.a #{NODE_LIBS}/libv8_libplatform.a "
|
||||
|
||||
# new change to mavrick means we need to link with libstdc++ instead of libc++ (the new default)
|
||||
$LDFLAGS.insert 0, " -stdlib=libstdc++ " if RUBY_PLATFORM =~ /darwin/
|
||||
|
||||
dir_config('v8')
|
||||
find_header('v8.h')
|
||||
have_library('v8')
|
||||
|
|
|
@ -22,7 +22,7 @@ typedef struct {
|
|||
typedef struct {
|
||||
ContextInfo* context_info;
|
||||
Local<String>* eval;
|
||||
long timeout;
|
||||
useconds_t timeout;
|
||||
EvalResult* result;
|
||||
} EvalParams;
|
||||
|
||||
|
@ -145,7 +145,7 @@ static VALUE rb_context_eval(VALUE self, VALUE str) {
|
|||
eval_params.timeout = 0;
|
||||
VALUE timeout = rb_iv_get(self, "@timeout");
|
||||
if (timeout != Qnil) {
|
||||
eval_params.timeout = NUM2LONG(timeout);
|
||||
eval_params.timeout = (useconds_t)NUM2LONG(timeout);
|
||||
}
|
||||
|
||||
rb_thread_call_without_gvl(nogvl_context_eval, &eval_params, RUBY_UBF_IO, 0);
|
||||
|
@ -243,6 +243,7 @@ rb_context_stop(VALUE self) {
|
|||
ContextInfo* context_info;
|
||||
Data_Get_Struct(self, ContextInfo, context_info);
|
||||
V8::TerminateExecution(context_info->isolate);
|
||||
return Qnil;
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
|
@ -251,11 +252,11 @@ extern "C" {
|
|||
{
|
||||
VALUE rb_mMiniRacer = rb_define_module("MiniRacer");
|
||||
VALUE rb_cContext = rb_define_class_under(rb_mMiniRacer, "Context", rb_cObject);
|
||||
rb_define_method(rb_cContext, "eval", rb_context_eval, 1);
|
||||
rb_define_method(rb_cContext, "stop", rb_context_stop, 0);
|
||||
rb_define_method(rb_cContext, "eval",(VALUE(*)(...))&rb_context_eval, 1);
|
||||
rb_define_method(rb_cContext, "stop", (VALUE(*)(...))&rb_context_stop, 0);
|
||||
rb_define_alloc_func(rb_cContext, allocate);
|
||||
|
||||
rb_define_private_method(rb_cContext, "notify", rb_context_notify, 1);
|
||||
rb_define_private_method(rb_cContext, "notify", (VALUE(*)(...))&rb_context_notify, 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ Gem::Specification.new do |spec|
|
|||
spec.add_development_dependency "minitest", "~> 5.0"
|
||||
spec.add_development_dependency "rake-compiler"
|
||||
|
||||
spec.add_dependency 'libv8', '~> 5.0.71.0'
|
||||
#spec.add_dependency 'libv8', '~> 5.0.71.0'
|
||||
spec.require_paths = ["lib", "ext"]
|
||||
|
||||
spec.extensions = ["ext/mini_racer_extension/extconf.rb"]
|
||||
|
|
Loading…
Add table
Reference in a new issue