summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAmir Bawab <amirbawab@gmail.com>2019-10-09 23:12:28 -0400
committerSam Clegg <sbc@chromium.org>2019-10-09 20:12:28 -0700
commit8d6f79d2b11b5ab54a6965d072afccd66629947d (patch)
treefbdb7188a2c765c7f9f2b59d970481638a6f8e17 /src
parent6d39c5876efbcae17df6c6d45d371b9194fb0b28 (diff)
downloadwabt-8d6f79d2b11b5ab54a6965d072afccd66629947d.tar.gz
wabt-8d6f79d2b11b5ab54a6965d072afccd66629947d.tar.bz2
wabt-8d6f79d2b11b5ab54a6965d072afccd66629947d.zip
Add `--version` to wabt tools (#1175)
Closes: #1106 Ported versioning system from [Binaryen CMakeLists.txt](https://github.com/WebAssembly/binaryen/blob/dc31b460fef47dfb3415b4ae6276fff4919a03e2/CMakeLists.txt#L10-L23) ``` bin/wasm2c --version 1.0.11-44-g71f883ad ``` Applied to (all) tools in `src/tools/`.
Diffstat (limited to 'src')
-rw-r--r--src/config.h.in2
-rw-r--r--src/option-parser.cc11
-rw-r--r--src/option-parser.h3
-rw-r--r--src/tools/spectest-interp.cc1
-rw-r--r--src/tools/wasm-decompile.cc1
-rw-r--r--src/tools/wasm-interp.cc1
-rw-r--r--src/tools/wasm-objdump.cc1
-rw-r--r--src/tools/wasm-opcodecnt.cc1
-rw-r--r--src/tools/wasm-strip.cc1
-rw-r--r--src/tools/wasm-validate.cc1
-rw-r--r--src/tools/wasm2c.cc1
-rw-r--r--src/tools/wasm2wat.cc1
-rw-r--r--src/tools/wast2json.cc1
-rw-r--r--src/tools/wat-desugar.cc1
-rw-r--r--src/tools/wat2wasm.cc1
15 files changed, 15 insertions, 13 deletions
diff --git a/src/config.h.in b/src/config.h.in
index 136454db..99f1741e 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -20,6 +20,8 @@
#include <stdint.h>
#include <stdlib.h>
+#cmakedefine WABT_VERSION_INFO "${WABT_VERSION_INFO}"
+
/* TODO(binji): nice way to define these with WABT_ prefix? */
/* Whether <alloca.h> is available */
diff --git a/src/option-parser.cc b/src/option-parser.cc
index 71c2e203..263ef176 100644
--- a/src/option-parser.cc
+++ b/src/option-parser.cc
@@ -50,6 +50,10 @@ OptionParser::OptionParser(const char* program_name, const char* description)
: program_name_(program_name),
description_(description),
on_error_([this](const std::string& message) { DefaultError(message); }) {
+
+ // Add common options
+ AddHelpOption();
+ AddVersionOption();
}
void OptionParser::AddOption(const Option& option) {
@@ -96,6 +100,13 @@ void OptionParser::AddHelpOption() {
});
}
+void OptionParser::AddVersionOption() {
+ AddOption("version", "Print version information", [this]() {
+ printf("%s\n", WABT_VERSION_INFO);
+ exit(0);
+ });
+}
+
void OptionParser::SetErrorCallback(const Callback& callback) {
on_error_ = callback;
}
diff --git a/src/option-parser.h b/src/option-parser.h
index 945434a9..98b82727 100644
--- a/src/option-parser.h
+++ b/src/option-parser.h
@@ -78,9 +78,10 @@ class OptionParser {
const char* metavar,
const char* help,
const Callback&);
- void AddHelpOption();
private:
+ void AddHelpOption();
+ void AddVersionOption();
static int Match(const char* s, const std::string& full, bool has_argument);
void WABT_PRINTF_FORMAT(2, 3) Errorf(const char* format, ...);
void HandleArgument(size_t* arg_index, const char* arg_value);
diff --git a/src/tools/spectest-interp.cc b/src/tools/spectest-interp.cc
index de770d24..e59895d7 100644
--- a/src/tools/spectest-interp.cc
+++ b/src/tools/spectest-interp.cc
@@ -70,7 +70,6 @@ static void ParseOptions(int argc, char** argv) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
s_features.AddOptions(&parser);
parser.AddOption('V', "value-stack-size", "SIZE",
"Size in elements of the value stack",
diff --git a/src/tools/wasm-decompile.cc b/src/tools/wasm-decompile.cc
index a50d8801..d351b7bf 100644
--- a/src/tools/wasm-decompile.cc
+++ b/src/tools/wasm-decompile.cc
@@ -52,7 +52,6 @@ int ProgramMain(int argc, char** argv) {
" # parse binary file test.wasm and write text file test.dcmp\n"
" $ wasm-decompile test.wasm -o test.dcmp\n";
OptionParser parser("wasm-decompile", s_description);
- parser.AddHelpOption();
parser.AddOption(
'o', "output", "FILENAME",
"Output file for the decompiled file, by default use stdout",
diff --git a/src/tools/wasm-interp.cc b/src/tools/wasm-interp.cc
index c08a4382..d9c0aa29 100644
--- a/src/tools/wasm-interp.cc
+++ b/src/tools/wasm-interp.cc
@@ -83,7 +83,6 @@ static void ParseOptions(int argc, char** argv) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
s_features.AddOptions(&parser);
parser.AddOption('V', "value-stack-size", "SIZE",
"Size in elements of the value stack",
diff --git a/src/tools/wasm-objdump.cc b/src/tools/wasm-objdump.cc
index 28a059d7..f7ef1ddd 100644
--- a/src/tools/wasm-objdump.cc
+++ b/src/tools/wasm-objdump.cc
@@ -60,7 +60,6 @@ static void ParseOptions(int argc, char** argv) {
[]() { s_objdump_options.details = true; });
parser.AddOption('r', "reloc", "Show relocations inline with disassembly",
[]() { s_objdump_options.relocs = true; });
- parser.AddHelpOption();
parser.AddArgument(
"filename", OptionParser::ArgumentCount::OneOrMore,
[](const char* argument) { s_infiles.push_back(argument); });
diff --git a/src/tools/wasm-opcodecnt.cc b/src/tools/wasm-opcodecnt.cc
index 6915dc82..eb49dce4 100644
--- a/src/tools/wasm-opcodecnt.cc
+++ b/src/tools/wasm-opcodecnt.cc
@@ -60,7 +60,6 @@ static void ParseOptions(int argc, char** argv) {
s_log_stream = FileStream::CreateStdout();
s_read_binary_options.log_stream = s_log_stream.get();
});
- parser.AddHelpOption();
s_features.AddOptions(&parser);
parser.AddOption('o', "output", "FILENAME",
"Output file for the opcode counts, by default use stdout",
diff --git a/src/tools/wasm-strip.cc b/src/tools/wasm-strip.cc
index 607ea0da..f8386720 100644
--- a/src/tools/wasm-strip.cc
+++ b/src/tools/wasm-strip.cc
@@ -37,7 +37,6 @@ examples:
static void ParseOptions(int argc, char** argv) {
OptionParser parser("wasm-strip", s_description);
- parser.AddHelpOption();
parser.AddArgument("filename", OptionParser::ArgumentCount::One,
[](const char* argument) {
s_filename = argument;
diff --git a/src/tools/wasm-validate.cc b/src/tools/wasm-validate.cc
index 5ec6be1d..3d671b2f 100644
--- a/src/tools/wasm-validate.cc
+++ b/src/tools/wasm-validate.cc
@@ -52,7 +52,6 @@ static void ParseOptions(int argc, char** argv) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
s_features.AddOptions(&parser);
parser.AddOption("no-debug-names", "Ignore debug names in the binary file",
[]() { s_read_debug_names = false; });
diff --git a/src/tools/wasm2c.cc b/src/tools/wasm2c.cc
index c7ce2113..d35d5789 100644
--- a/src/tools/wasm2c.cc
+++ b/src/tools/wasm2c.cc
@@ -62,7 +62,6 @@ static void ParseOptions(int argc, char** argv) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
parser.AddOption(
'o', "output", "FILENAME",
"Output file for the generated C source file, by default use stdout",
diff --git a/src/tools/wasm2wat.cc b/src/tools/wasm2wat.cc
index 53c7001c..8167c168 100644
--- a/src/tools/wasm2wat.cc
+++ b/src/tools/wasm2wat.cc
@@ -64,7 +64,6 @@ static void ParseOptions(int argc, char** argv) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
parser.AddOption(
'o', "output", "FILENAME",
"Output file for the generated wast file, by default use stdout",
diff --git a/src/tools/wast2json.cc b/src/tools/wast2json.cc
index 42d8859f..33c4895c 100644
--- a/src/tools/wast2json.cc
+++ b/src/tools/wast2json.cc
@@ -65,7 +65,6 @@ static void ParseOptions(int argc, char* argv[]) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
parser.AddOption("debug-parser", "Turn on debugging the parser of wast files",
[]() { s_debug_parsing = true; });
s_features.AddOptions(&parser);
diff --git a/src/tools/wat-desugar.cc b/src/tools/wat-desugar.cc
index 0760100d..cc6a2cba 100644
--- a/src/tools/wat-desugar.cc
+++ b/src/tools/wat-desugar.cc
@@ -59,7 +59,6 @@ examples:
static void ParseOptions(int argc, char** argv) {
OptionParser parser("wat-desugar", s_description);
- parser.AddHelpOption();
parser.AddOption('o', "output", "FILE", "Output file for the formatted file",
[](const char* argument) { s_outfile = argument; });
parser.AddOption("debug-parser", "Turn on debugging the parser of wat files",
diff --git a/src/tools/wat2wasm.cc b/src/tools/wat2wasm.cc
index 04dc155d..e1bb192a 100644
--- a/src/tools/wat2wasm.cc
+++ b/src/tools/wat2wasm.cc
@@ -71,7 +71,6 @@ static void ParseOptions(int argc, char* argv[]) {
s_verbose++;
s_log_stream = FileStream::CreateStdout();
});
- parser.AddHelpOption();
parser.AddOption("debug-parser", "Turn on debugging the parser of wat files",
[]() { s_debug_parsing = true; });
parser.AddOption('d', "dump-module",