diff options
Diffstat (limited to 'src/tools/wasm-emscripten-finalize.cpp')
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 22 |
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; |