Scilab: add SWIG banner in builder.sce

This commit is contained in:
Simon Marchetto 2013-09-23 09:49:13 +02:00
commit 6318290a3b

View file

@ -158,6 +158,7 @@ public:
// Add builder header code // Add builder header code
if (generateBuilder) { if (generateBuilder) {
createBuilderFile();
startBuilderCode(moduleName, outputFilename); startBuilderCode(moduleName, outputFilename);
} }
@ -189,7 +190,7 @@ public:
// Add Builder footer code and save // Add Builder footer code and save
if (generateBuilder) { if (generateBuilder) {
terminateBuilderCode(); terminateBuilderCode();
saveBuilder(); saveBuilderFile();
} }
// Add initialization function to init section // Add initialization function to init section
@ -222,6 +223,15 @@ public:
return SWIG_OK; return SWIG_OK;
} }
/* ------------------------------------------------------------------------
* emitWrapper()
* ----------------------------------------------------------------------*/
void emitBanner(File *f) {
Printf(f, "// ----------------------------------------------------------------------------\n");
Swig_banner_target_lang(f, "// ");
Printf(f, "// ----------------------------------------------------------------------------- */\n\n");
}
/* ------------------------------------------------------------------------ /* ------------------------------------------------------------------------
* functionWrapper() * functionWrapper()
* ----------------------------------------------------------------------*/ * ----------------------------------------------------------------------*/
@ -643,6 +653,16 @@ public:
return Language::enumvalueDeclaration(node); return Language::enumvalueDeclaration(node);
} }
void createBuilderFile() {
String *builderFilename = NewStringf("%sbuilder.sce", SWIG_output_directory());
builderFile = NewFile(builderFilename, "w", SWIG_output_files());
if (!builderFile) {
FileErrorDisplay(builderFilename);
SWIG_exit(EXIT_FAILURE);
}
emitBanner(builderFile);
}
void startBuilderCode(String *moduleName, String *outputFilename) { void startBuilderCode(String *moduleName, String *outputFilename) {
builderFunctionCount = 0; builderFunctionCount = 0;
builderCode = NewString(""); builderCode = NewString("");
@ -709,14 +729,8 @@ public:
Printf(builderCode, "exit(ret)"); Printf(builderCode, "exit(ret)");
} }
void saveBuilder() { void saveBuilderFile() {
// Save builder // Save builder
String *builderFilename = NewStringf("%sbuilder.sce", SWIG_output_directory());
builderFile = NewFile(builderFilename, "w", SWIG_output_files());
if (!builderFile) {
FileErrorDisplay(builderFilename);
SWIG_exit(EXIT_FAILURE);
}
Printv(builderFile, builderCode, NIL); Printv(builderFile, builderCode, NIL);
Delete(builderFile); Delete(builderFile);
} }