Gitのバージョン番号をプログラムに埋め込む

気がつくと、1ヶ月近くBlog更新してない。

簡単なTips。Gitの管理番号をソースコードに埋め込みたくなった。

用意するのは、MakefileとCのソースコード

Makefile

Makefileの中には、Shellコマンドを書いたりすることができる。

GIT_VER = $(shell git log -1 --format="%h")
CUSTOM_FLAGS += -DGITVER=\"$(GIT_VER)\"

として、gccに渡してやるとよい。
注意点としては、DGITVER=\"$(GIT_VER)\"とダブルクォートで囲んで(シンボルではなく文字列にするため)、さらにエスケープしてやる必要がある。*

Cプログラム側

こちらは、普通にマクロを受ければいいので、何もいらない。

void print_version()
{
        std::cout << "exec: " << VERSION << "-(" << GITVER << ")" 
                                                << std::endl;
        exit(EXIT_SUCCESS);
}