メモ:node.jsの拡張

js

#!/usr/local/bin/node

require.paths.push("./build/default/");

var obj = require("hello");

console.log(obj);

cpp

#include <v8.h>

using namespace v8;
extern "C" {
    void init ( Handle<Object> target ){
        HandleScope scope;
        target->Set( String::New("hello") , String::New("world") );
    }
}

wscript

srcdir = '.'
blddir = 'build'
VERSION = '0.0.1'

def set_options(opt):
  opt.tool_options('compiler_cxx')

def configure(conf):
  conf.check_tool('compiler_cxx')
  conf.check_tool('node_addon')

def build(bld):
  obj = bld.new_task_gen('cxx', 'shlib', 'node_addon')
  obj.target = 'hello'
  obj.source = 'hello.cc'