添加版本号一、
cp version.in.hpp version.hpp
sed -i "s/@gitname@/`basename "$PWD"`/g" version.hpp
sed -i "s/@gitbranch@/`git rev-parse --abbrev-ref HEAD`/g" version.hpp
sed -i "s/@gitver@/`git log -1 --pretty=format:%h`/g" version.hpp
sed -i "s/@timestamp@/`date +\"%F %T\"`/g" version.hpp
//version.in.hpp
#ifdef DEBUG
#define VER ("[vov:Debug:@gitname@:@gitbranch@:@gitver@:@timestamp@]")
#else
#define VER ("[vov:Release:@gitname@:@gitbranch@:@gitver@:@timestamp@]")
#endif
const char *vversion=VER;
添加版本号二、
#version.cmake
#usage:include(${CMAKE_CURRENT_SOURCE_DIR}/version.cmake)
#compile time
string(TIMESTAMP compile_time "%Y-%m-%d %H:%M:%S")
#git branch
execute_process(
COMMAND git rev-parse --abbrev-ref HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE git_branch
OUTPUT_STRIP_TRAILING_WHITESPACE
)
#git commit
execute_process(
COMMAND git log -1 --pretty=format:%h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE git_commit
OUTPUT_STRIP_TRAILING_WHITESPACE
)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/verion.in.hpp ${CMAKE_CURRENT_SOURCE_DIR}/version.hpp @ONLY)
//version.in.hpp
#define VER ("vov:@git_branch@:@git_commit@:@compile_time@")
const char *vversion=VER;