Makefile: generate util/build_version.cc from .in file (#1384)

* util/build_verion.cc.in: add this file, so cmake and make can share the
  template file for generating util/build_version.cc.
* CMakeLists.txt: also, cmake v2.8.11 does not support file(GENERATE ...),
  so we are using configure_file() for creating build_version.cc.
* Makefile: use util/build_verion.cc.in for creating build_version.cc.

Signed-off-by: Kefu Chai <tchaikov@gmail.com>
main
Kefu Chai 8 years ago committed by Dmitri Smirnov
parent 9ee84067f6
commit 60a2bbba94
  1. 7
      CMakeLists.txt
  2. 9
      Makefile
  3. 4
      util/build_version.cc.in

@ -79,12 +79,7 @@ endif()
string(REGEX REPLACE "[^0-9a-f]+" "" GIT_SHA "${GIT_SHA}") string(REGEX REPLACE "[^0-9a-f]+" "" GIT_SHA "${GIT_SHA}")
set(BUILD_VERSION_CC ${CMAKE_BINARY_DIR}/build_version.cc) set(BUILD_VERSION_CC ${CMAKE_BINARY_DIR}/build_version.cc)
file(GENERATE OUTPUT ${BUILD_VERSION_CC} CONTENT configure_file(util/build_version.cc.in ${BUILD_VERSION_CC} @ONLY)
"#include \"build_version.h\"
const char* rocksdb_build_git_sha = \"rocksdb_build_git_sha:${GIT_SHA}\";
const char* rocksdb_build_git_datetime = \"rocksdb_build_git_datetime:${GIT_DATE_TIME}\";
const char* rocksdb_build_compile_date = __DATE__;
")
add_library(build_version OBJECT ${BUILD_VERSION_CC}) add_library(build_version OBJECT ${BUILD_VERSION_CC})
target_include_directories(build_version PRIVATE target_include_directories(build_version PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}/util) ${CMAKE_CURRENT_SOURCE_DIR}/util)

@ -231,14 +231,7 @@ ifdef FORCE_GIT_SHA
else else
git_sha := $(shell git rev-parse HEAD 2>/dev/null) git_sha := $(shell git rev-parse HEAD 2>/dev/null)
endif endif
gen_build_version = \ gen_build_version = sed -e s/@@GIT_SHA@@/$(git_sha)/ -e s/@@GIT_DATE_TIME@@/$(date)/ util/build_version.cc.in
printf '%s\n' \
'\#include "build_version.h"' \
'const char* rocksdb_build_git_sha = \
"rocksdb_build_git_sha:$(git_sha)";' \
'const char* rocksdb_build_git_date = \
"rocksdb_build_git_date:$(date)";' \
'const char* rocksdb_build_compile_date = __DATE__;'
# Record the version of the source that we are compiling. # Record the version of the source that we are compiling.
# We keep a record of the git revision in this file. It is then built # We keep a record of the git revision in this file. It is then built

@ -0,0 +1,4 @@
#include "build_version.h"
const char* rocksdb_build_git_sha = "rocksdb_build_git_sha:@@GIT_SHA@@";
const char* rocksdb_build_git_date = "rocksdb_build_git_date:@@GIT_DATE_TIME@@";
const char* rocksdb_build_compile_date = __DATE__;
Loading…
Cancel
Save