summaryrefslogtreecommitdiff
path: root/src/tools/wasm-emscripten-finalize.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/wasm-emscripten-finalize.cpp')
-rw-r--r--src/tools/wasm-emscripten-finalize.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp
index 4caa62b08..392cf14a4 100644
--- a/src/tools/wasm-emscripten-finalize.cpp
+++ b/src/tools/wasm-emscripten-finalize.cpp
@@ -60,12 +60,16 @@ int main(int argc, const char* argv[]) {
bool noDynCalls = false;
bool onlyI64DynCalls = false;
+ const std::string WasmEmscriptenFinalizeOption =
+ "wasm-emscripten-finalize options";
+
ToolOptions options("wasm-emscripten-finalize",
"Performs Emscripten-specific transforms on .wasm files");
options
.add("--output",
"-o",
"Output file",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[&outfile](Options*, const std::string& argument) {
outfile = argument;
@@ -74,22 +78,26 @@ int main(int argc, const char* argv[]) {
.add("--debuginfo",
"-g",
"Emit names section in wasm binary (or full debuginfo in wast)",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&debugInfo](Options*, const std::string&) { debugInfo = true; })
.add("--dwarf",
"",
"Update DWARF debug info",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&DWARF](Options*, const std::string&) { DWARF = true; })
.add("--emit-text",
"-S",
"Emit text instead of binary for the output file. "
"In this mode if no output file is specified, we write to stdout.",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&emitBinary](Options*, const std::string&) { emitBinary = false; })
.add("--global-base",
"",
"The address at which static globals were placed",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[&globalBase](Options*, const std::string& argument) {
globalBase = std::stoull(argument);
@@ -99,11 +107,13 @@ int main(int argc, const char* argv[]) {
.add("--initial-stack-pointer",
"",
"ignored - will be removed in a future release",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[](Options*, const std::string& argument) {})
.add("--side-module",
"",
"Input is an emscripten side module",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&sideModule](Options* o, const std::string& argument) {
sideModule = true;
@@ -111,11 +121,13 @@ int main(int argc, const char* argv[]) {
.add("--new-pic-abi",
"",
"Use new/llvm PIC abi",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&](Options* o, const std::string& argument) {})
.add("--input-source-map",
"-ism",
"Consume source map from the specified file",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[&inputSourceMapFilename](Options* o, const std::string& argument) {
inputSourceMapFilename = argument;
@@ -124,6 +136,7 @@ int main(int argc, const char* argv[]) {
"-nj",
"Do not fully legalize (i64->i32, "
"f32->f64) the imports and exports for interfacing with JS",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&legalizeJavaScriptFFI](Options* o, const std::string&) {
legalizeJavaScriptFFI = false;
@@ -133,11 +146,13 @@ int main(int argc, const char* argv[]) {
"Assume JS will use wasm/JS BigInt integration, so wasm i64s will "
"turn into JS BigInts, and there is no need for any legalization at "
"all (not even minimal legalization of dynCalls)",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&bigInt](Options* o, const std::string&) { bigInt = true; })
.add("--output-source-map",
"-osm",
"Emit source map to the specified file",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[&outputSourceMapFilename](Options* o, const std::string& argument) {
outputSourceMapFilename = argument;
@@ -145,6 +160,7 @@ int main(int argc, const char* argv[]) {
.add("--output-source-map-url",
"-osu",
"Emit specified string as source map URL",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[&outputSourceMapUrl](Options* o, const std::string& argument) {
outputSourceMapUrl = argument;
@@ -152,6 +168,7 @@ int main(int argc, const char* argv[]) {
.add("--separate-data-segments",
"",
"Separate data segments to a file",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::One,
[&dataSegmentFile](Options* o, const std::string& argument) {
dataSegmentFile = argument;
@@ -159,6 +176,7 @@ int main(int argc, const char* argv[]) {
.add("--check-stack-overflow",
"",
"Check for stack overflows every time the stack is extended",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&checkStackOverflow](Options* o, const std::string&) {
checkStackOverflow = true;
@@ -167,6 +185,7 @@ int main(int argc, const char* argv[]) {
"",
"Emit a wasm file that does not depend on JS, as much as possible,"
" using wasi and other standard conventions etc. where possible",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&standaloneWasm](Options* o, const std::string&) {
standaloneWasm = true;
@@ -176,6 +195,7 @@ int main(int argc, const char* argv[]) {
"Modify the wasm as little as possible. This is useful during "
"development as we reduce the number of changes to the wasm, as it "
"lets emscripten control how much modifications to do.",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&minimizeWasmChanges](Options* o, const std::string&) {
minimizeWasmChanges = true;
@@ -183,11 +203,13 @@ int main(int argc, const char* argv[]) {
.add("--no-dyncalls",
"",
"",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&noDynCalls](Options* o, const std::string&) { noDynCalls = true; })
.add("--dyncalls-i64",
"",
"",
+ WasmEmscriptenFinalizeOption,
Options::Arguments::Zero,
[&onlyI64DynCalls](Options* o, const std::string&) {
onlyI64DynCalls = true;