Scilab: init function name SWIG_Init() changed to <module>_Init()

This commit is contained in:
Simon Marchetto 2013-09-18 10:24:47 +02:00
commit 77da84f549
7 changed files with 22 additions and 20 deletions

View file

@ -1,7 +1,7 @@
lines(0);
ilib_verbose(0);
exec loader.sce;
SWIG_Init();
example_Init();
printf("\nConstants are wrapped by functions:\n");
printf("ICONST = %i (should be 42)\n", ICONST);

View file

@ -1,7 +1,7 @@
lines(0);
ilib_verbose(0);
exec loader.sce;
SWIG_Init();
example_Init();
printf("\nTesting use of enums (wrapped as Scilab variables)\n");

View file

@ -1,7 +1,7 @@
lines(0);
ilib_verbose(0);
exec loader.sce;
SWIG_Init();
example_Init();
// This example shows how to use C++ fonctions with STL lists arguments
// Here, STL lists are converted from/to Scilab matrices (SWIG_SCILAB_EXTRA_NATIVE_CONTAINERS is not defined)

View file

@ -1,7 +1,7 @@
lines(0);
ilib_verbose(0);
exec loader.sce;
SWIG_Init();
example_Init();
disp(mean([1,2,3,4]));

View file

@ -25,10 +25,11 @@ end
// Module initialization
try
SWIG_Init();
moduleInit = sprintf("%s_Init()", swigtestname);
ierr = execstr(moduleInit);
catch
mprintf("*** MODULE INIT FAILED ***\n");
exit(1)
exit(ierr)
end
// Error management function

View file

@ -267,12 +267,3 @@ SWIG_Scilab_SetModule(swig_module_info *swig_module)
%}
%insert(init) "swiginit.swg"
%init %{
#ifdef __cplusplus
extern "C"
#endif
int SWIG_Init(char *fname, unsigned long fname_len) {
SWIG_InitializeModule(NULL);
SWIG_CreateScilabVariables();
%}

View file

@ -25,7 +25,6 @@ Scilab options (available with -scilab)\n\
-buildflags <file> - Uses a Scilab script in <file> to set build flags\n\
-nobuilder - Do not generate builder script\n\n";
static const char *SWIG_INIT_FUNCTION_NAME = "SWIG_Init";
static const char *SWIG_CREATE_VARIABLES_FUNCTION_NAME = "SWIG_CreateScilabVariables";
class SCILAB:public Language {
@ -162,8 +161,12 @@ public:
startBuilderCode(moduleName, outputFilename);
}
/* add initialization function to builder table */
addFunctionInBuilder(SWIG_INIT_FUNCTION_NAME, SWIG_INIT_FUNCTION_NAME);
// Module initialization function
String *moduleInitFunctionName = NewString("");
Printf(moduleInitFunctionName, "%s_Init", moduleName);
/* Add initialization function to builder table */
addFunctionInBuilder(moduleInitFunctionName, moduleInitFunctionName);
// Open Scilab wrapper variables creation function
variablesCode = NewString("");
@ -189,8 +192,15 @@ public:
saveBuilder();
}
/* Close the init function (opened in sciinit.swg) */
Printf(initSection, "return 0;\n}\n");
// Add initialization function to init section
Printf(initSection, "#ifdef __cplusplus\n");
Printf(initSection, "extern \"C\"\n");
Printf(initSection, "#endif\n");
Printf(initSection, "int %s(char *fname, unsigned long fname_len) {\n", moduleInitFunctionName);
Printf(initSection, " SWIG_InitializeModule(NULL);\n");
Printf(initSection, " SWIG_CreateScilabVariables();\n");
Printf(initSection, "return 0;\n");
Printf(initSection, "}\n");
/* Write all to the wrapper file */
SwigType_emit_type_table(runtimeSection, wrappersSection); // Declare pointer types, ... (Ex: SWIGTYPE_p_p_double)