CMakeのチュートリアルに書いてあるのだが、CMakeでビルドする度にバージョン番号やリビジョン番号を設定するためには、以下のような方法がある。
http://www.cmake.org/cmake-tutorial/
CMakeLists.txtの中で以下のような記述をしている。
execute_process (COMMAND date +%Y%m%d OUTPUT_VARIABLE CMAKE_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process (COMMAND git rev-parse --short HEAD OUTPUT_VARIABLE CMAKE_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE) set (VERSION ${CMAKE_VERSION}) set (REVISION ${CMAKE_REVISION}) configure_file ("${PROJECT_SOURCE_DIR}/version.h.in" "${PROJECT_SOURCE_DIR}/version.h")
これは、外部コマンドを実行して、CMAKE_VERSIONに日付の数値、CMAKE_REVISIONにgitのハッシュ番号のshort形式を挿入している。 そして、それらをVERSION,REVISIONという変数に格納している。
VERSION, REVISIONはどこで使うのかというと、それはconfigure_fileで記述している。
$ cat version.h.in #pragma once #define VERSION "@VERSION@" #define REVISION "@REVISION@"
@VERSION@, @REVISION@ が、CMake側で設定したもの、それがdefineとして定義され、プログラム中で利用することができる。