aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRubén Rincón Blanco <ruben@rinconblanco.es>2022-04-02 23:26:11 +0200
committerGitHub <noreply@github.com>2022-04-02 23:26:11 +0200
commit48c95e849d70b1694f4b8ec2f8a32d2e5f214a29 (patch)
tree4868b56f1fbed2cf61b6375403701f2ac103d62b
parent1ac1664294ad4f3039669b32717016e01f026c02 (diff)
downloadcompiler-explorer-48c95e849d70b1694f4b8ec2f8a32d2e5f214a29.tar.gz
compiler-explorer-48c95e849d70b1694f4b8ec2f8a32d2e5f214a29.zip
Adds overridable orderArguments function (#3489)gh-2259
Closes #3488
-rw-r--r--lib/base-compiler.js23
-rw-r--r--lib/compilers/nim.js12
2 files changed, 33 insertions, 2 deletions
diff --git a/lib/base-compiler.js b/lib/base-compiler.js
index fda955b19..a13a1efe4 100644
--- a/lib/base-compiler.js
+++ b/lib/base-compiler.js
@@ -662,6 +662,18 @@ export class BaseCompiler {
}));
}
+ orderArguments(options, inputFilename, libIncludes, libOptions, libPaths, libLinks, userOptions, staticLibLinks) {
+ return options.concat(
+ [this.filename(inputFilename)],
+ libIncludes,
+ libOptions,
+ libPaths,
+ libLinks,
+ userOptions,
+ staticLibLinks,
+ );
+ }
+
prepareArguments(userOptions, filters, backendOptions, inputFilename, outputFilename, libraries) {
let options = this.optionsForFilter(filters, outputFilename, userOptions);
backendOptions = backendOptions || {};
@@ -689,8 +701,15 @@ export class BaseCompiler {
}
userOptions = this.filterUserOptions(userOptions) || [];
- return options.concat([this.filename(inputFilename)], libIncludes, libOptions,
- libPaths, libLinks, userOptions, staticLibLinks);
+ return this.orderArguments(options,
+ inputFilename,
+ libIncludes,
+ libOptions,
+ libPaths,
+ libLinks,
+ userOptions,
+ staticLibLinks,
+ );
}
filterUserOptions(userOptions) {
diff --git a/lib/compilers/nim.js b/lib/compilers/nim.js
index d0124db61..5d24bb923 100644
--- a/lib/compilers/nim.js
+++ b/lib/compilers/nim.js
@@ -125,4 +125,16 @@ export class NimCompiler extends BaseCompiler {
isCfgCompiler(/*compilerVersion*/) {
return true;
}
+
+ orderArguments(options, inputFilename, libIncludes, libOptions, libPaths, libLinks, userOptions, staticLibLinks) {
+ return options.concat(
+ libIncludes,
+ libOptions,
+ libPaths,
+ libLinks,
+ userOptions,
+ [this.filename(inputFilename)],
+ staticLibLinks,
+ );
+ }
}