diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/tools/wasm-emscripten-finalize.cpp | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/tools/wasm-emscripten-finalize.cpp b/src/tools/wasm-emscripten-finalize.cpp index 392cf14a4..7f3e24e6a 100644 --- a/src/tools/wasm-emscripten-finalize.cpp +++ b/src/tools/wasm-emscripten-finalize.cpp @@ -47,6 +47,7 @@ int main(int argc, const char* argv[]) { std::string outputSourceMapUrl; std::string dataSegmentFile; bool emitBinary = true; + bool emitMetadata = true; bool debugInfo = false; bool DWARF = false; bool sideModule = false; @@ -94,6 +95,13 @@ int main(int argc, const char* argv[]) { WasmEmscriptenFinalizeOption, Options::Arguments::Zero, [&emitBinary](Options*, const std::string&) { emitBinary = false; }) + .add( + "--no-emit-metadata", + "-n", + "Skip the writing to emscripten metadata JSON to stdout.", + WasmEmscriptenFinalizeOption, + Options::Arguments::Zero, + [&emitMetadata](Options*, const std::string&) { emitMetadata = false; }) .add("--global-base", "", "The address at which static globals were placed", @@ -321,7 +329,10 @@ int main(int argc, const char* argv[]) { BYN_TRACE("generated metadata\n"); // Substantial changes to the wasm are done, enough to create the metadata. - std::string metadata = generator.generateEmscriptenMetadata(); + std::string metadata; + if (emitMetadata) { + metadata = generator.generateEmscriptenMetadata(); + } // Finally, separate out data segments if relevant (they may have been needed // for metadata). @@ -347,7 +358,7 @@ int main(int argc, const char* argv[]) { writer.setSourceMapUrl(outputSourceMapUrl); } writer.write(wasm, output); - if (!emitBinary) { + if (emitMetadata && !emitBinary) { output << "(;\n"; output << "--BEGIN METADATA --\n" << metadata << "-- END METADATA --\n"; output << ";)\n"; @@ -355,7 +366,7 @@ int main(int argc, const char* argv[]) { } // If we emit text then we emitted the metadata together with that text // earlier. Otherwise emit it to stdout. - if (emitBinary) { + if (emitMetadata && emitBinary) { std::cout << metadata; } return 0; |