diff options
Diffstat (limited to 'lib/compilers/pascal.js')
-rw-r--r-- | lib/compilers/pascal.js | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/lib/compilers/pascal.js b/lib/compilers/pascal.js index 4860674c6..8be044285 100644 --- a/lib/compilers/pascal.js +++ b/lib/compilers/pascal.js @@ -32,6 +32,7 @@ var Compile = require('../base-compiler'), function compileFPC(info, env) { var demangler = new PascalDemangler(); var compiler = new Compile(info, env); + compiler.compileFilename = "output.pas"; compiler.supportsOptOutput = false; var originalExecBinary = compiler.execBinary; @@ -63,10 +64,16 @@ function compileFPC(info, env) { return options; }; + compiler.getOutputFilename = function (dirPath, outputFilebase) { + return path.join(dirPath, path.basename(this.compileFilename, this.langInfo.extensions[0]) + ".s"); + }; + var saveDummyProjectFile = function (filename) { + const unitName = path.basename(compiler.compileFilename, compiler.langInfo.extensions[0]); + fs.writeFileSync(filename, "program prog; " + - "uses output in 'output.pas'; " + + "uses " + unitName + " in '" + compiler.compileFilename + "'; " + "begin " + "end.", function() {}); }; @@ -100,7 +107,7 @@ function compileFPC(info, env) { if (!isNaN(valueInBrackets)) { return " .loc 1 " + valueInBrackets + " 0"; - } else if (valueInBrackets.includes("output.pas")) { + } else if (valueInBrackets.includes(compiler.compileFilename)) { return " .file 1 \"<stdin>\""; } else { return false; @@ -181,7 +188,11 @@ function compileFPC(info, env) { originalExecBinary(executable, result, maxSize); }; - return compiler.initialise(); + if (info.unitTestMode) { + compiler.initialise(); + return compiler; + } else + return compiler.initialise(); } module.exports = compileFPC; |