我已经使用Clang Libtooling开发了一个工具,并且-help选项说明了有关-version选项的信息:
-版本-显示该程序的版本
当我执行此操作时:
$ tool_name -version
LLVM(http://llvm.org/):
LLVM版本6.0.1
优化的构建。
默认目标:x86_64-unknown-linux-gnu
主机CPU:Broadwell
它显示了用于我的程序的clang版本。但是,有什么方法可以显示我的工具的版本信息而不是clang的版本信息吗?
类似的东西:
$ tool_name -version
tool_name 2.0
我搜索了clang文档,但没有运气。
答案 0 :(得分:2)
Clang工具使用LLVM的CommandLine库来解析命令行参数。它有自己的manual,您可以在其中找到SetVersionPrinter函数。
这是一个小例子:
#include "clang/Tooling/CommonOptionsParser.h"
#include "clang/Tooling/Tooling.h"
using namespace clang;
using namespace clang::driver;
using namespace clang::tooling;
static llvm::cl::OptionCategory MyToolOptions("My Awesome Clang Tool");
int main(int Argc, const char **Argv) {
llvm::cl::SetVersionPrinter(
[](llvm::raw_ostream &OS) { OS << "Awesome v1.0.0\n"; });
CommonOptionsParser Options(Argc, Argv, MyToolOptions);
ClangTool Tool(Options.getCompilations(), Options.getSourcePathList());
return 0;
}
使用-version
选项运行此工具:
> ./myTool -version
Awesome v1.0.0
使用Clang进行快乐的黑客入侵!