Generate defines for initializer function.

This commit is contained in:
Oliver Buchtala 2012-12-04 01:36:51 +01:00
commit 2c4a90a37d
2 changed files with 9 additions and 2 deletions

View file

@ -244,6 +244,10 @@ int $jswrapper(JSContextRef context, JSObjectRef function, JSObjectRef thisObjec
}
%}
%fragment ("js_initializer_define", "templates") %{
#define SWIGJSC_INIT $jsname_initialize
%}
/* -----------------------------------------------------------------------------
* js_initializer: template for the module initializer function
* - $jsname: module name
@ -256,7 +260,7 @@ int $jswrapper(JSContextRef context, JSObjectRef function, JSObjectRef thisObjec
extern "C" {
#endif
bool $jsname_initialize(JSGlobalContextRef context) {
bool SWIGJSC_INIT (JSGlobalContextRef context) {
SWIG_InitializeModule(0);
JSObjectRef global_object = JSContextGetGlobalObject(context);

View file

@ -1407,6 +1407,9 @@ int JSCEmitter::dump(Node *n) {
// write the swig banner
Swig_banner(f_wrap_cpp);
Template initializer_define(getTemplate("js_initializer_define"));
initializer_define.replace(T_NAME, module).pretty_print(f_header);
SwigType_emit_type_table(f_runtime, f_wrappers);
Printv(f_wrap_cpp, f_runtime, "\n", 0);
@ -1414,7 +1417,7 @@ int JSCEmitter::dump(Node *n) {
Printv(f_wrap_cpp, f_wrappers, "\n", 0);
emitNamespaces();
// compose the initializer function using a template
Template initializer(getTemplate("js_initializer"));
initializer.replace(T_NAME, module)