From b88536173b6ca2e79d8837bed62b9452920a319e Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 31 Mar 2014 16:22:27 -0400 Subject: castxml: Report help with '-help' and '--help' Also pass the flag through so Clang reports its help too. --- src/castxml.cxx | 15 +++++++++++++++ test/CMakeLists.txt | 2 ++ test/expect/cmd.help1-stderr.txt | 1 + test/expect/cmd.help1-stdout.txt | 7 +++++++ test/expect/cmd.help2-stderr.txt | 1 + test/expect/cmd.help2-stdout.txt | 7 +++++++ 6 files changed, 33 insertions(+) create mode 100644 test/expect/cmd.help1-stderr.txt create mode 100644 test/expect/cmd.help1-stdout.txt create mode 100644 test/expect/cmd.help2-stderr.txt create mode 100644 test/expect/cmd.help2-stdout.txt diff --git a/src/castxml.cxx b/src/castxml.cxx index 8f496d0..cf6fb27 100644 --- a/src/castxml.cxx +++ b/src/castxml.cxx @@ -85,6 +85,9 @@ int main(int argc_in, const char** argv_in) " --castxml-start \n" " Start AST traversal at declaration with given (qualified) name\n" "\n" + " -help, --help\n" + " Print castxml and internal Clang compiler usage information\n" + "\n" " -o \n" " Write output to \n" "\n" @@ -194,6 +197,18 @@ int main(int argc_in, const char** argv_in) ; return 1; } + } else if(strcmp(argv[i], "-help") == 0 || + strcmp(argv[i], "--help") == 0) { + std::cout << + usage << + "\n" + "Help for the internal Clang compiler appears below.\n" + "\n" + "---------------------------------------------------------------" + "\n" << + std::endl; + // Also print Clang help. + clang_args.push_back(argv[i]); } else if(strcmp(argv[i], "--version") == 0) { std::cout << "castxml version " << getVersionString() << std::endl; // Also print Clang version. diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6d3d8a9..19c00dc 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -63,6 +63,8 @@ set(empty_cxx ${input}/empty.cxx) set(empty_m ${input}/empty.m) set(empty_mm ${input}/empty.mm) +castxml_test_cmd(help1 -help) +castxml_test_cmd(help2 --help) castxml_test_cmd(no-arguments) castxml_test_cmd(version --version) diff --git a/test/expect/cmd.help1-stderr.txt b/test/expect/cmd.help1-stderr.txt new file mode 100644 index 0000000..10f3293 --- /dev/null +++ b/test/expect/cmd.help1-stderr.txt @@ -0,0 +1 @@ +^$ diff --git a/test/expect/cmd.help1-stdout.txt b/test/expect/cmd.help1-stdout.txt new file mode 100644 index 0000000..9b47306 --- /dev/null +++ b/test/expect/cmd.help1-stdout.txt @@ -0,0 +1,7 @@ +^Usage: castxml .* + +Help for the internal Clang compiler appears below. + +--------------------------------------------------------------- + +OVERVIEW: clang LLVM compiler diff --git a/test/expect/cmd.help2-stderr.txt b/test/expect/cmd.help2-stderr.txt new file mode 100644 index 0000000..10f3293 --- /dev/null +++ b/test/expect/cmd.help2-stderr.txt @@ -0,0 +1 @@ +^$ diff --git a/test/expect/cmd.help2-stdout.txt b/test/expect/cmd.help2-stdout.txt new file mode 100644 index 0000000..9b47306 --- /dev/null +++ b/test/expect/cmd.help2-stdout.txt @@ -0,0 +1,7 @@ +^Usage: castxml .* + +Help for the internal Clang compiler appears below. + +--------------------------------------------------------------- + +OVERVIEW: clang LLVM compiler -- cgit v0.12