1
0
Fork 0
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:
Sam Saffron 2016-05-08 23:43:49 +10:00
parent 296efa9290
commit 4deaa0d47e
3 changed files with 14 additions and 8 deletions

View file

@ -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')

View file

@ -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);
}
}

View file

@ -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"]