LoginSignup
11
10

More than 5 years have passed since last update.

今見ている最新のコミットIDなどをコンパイル時に埋め込む

Last updated at Posted at 2014-09-28

下のようなスクリプトをmakeファイルのどこかに書く:

GIT_COMMIT_INFO := $(shell git log -1 | sed -e '1,2s/$$/\\n/;4,$$d' | tr -d '\n')
GIT_COMMIT_ID := $(shell git log -1 | sed -n '1,1p')
GIT_COMMIT_DATE := $(shell git log -1 | sed -n '3,3p')
CPPFLAGS += -DGIT_COMMIT_ID="$(GIT_COMMIT_ID)" -DGIT_COMMIT_DATE="$(GIT_COMMIT_DATE)"

まぁちょっと,余計なものも混ざってるけど…
プログラムのソースコードの方では,コマンドラインオプションで定義している文字列を使ったコードを書いておく.

作成したいのはプログラムで,その挙動がどの時点のものでビルドされたかどうかに興味があるので,こんな感じでよいと思う.

追記

コメントで示されているように,git log--formatオプションで整形するとsedを使う必要が無くなる.
@ngyuki さんありがとうございます.

11
10
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
10