说明
通过cmake在编译阶段获取svn版本信息,并生成宏提供代码使用
获取svn信息
cmake获取svn信息,并定义宏
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| if(UNIX) execute_process(COMMAND svn info http://192.168.6.124/usvn/public/svn/develop_cpp COMMAND grep -E "Rev:|Author:|Date:" COMMAND cut -d " " -f 4 TIMEOUT 3 OUTPUT_VARIABLE SvnData) string(REPLACE "\n" ";" SEXY_LIST ${SvnData}) list(GET SEXY_LIST 0 SvnAuthor) list(GET SEXY_LIST 1 SvnRev) list(GET SEXY_LIST 2 SvnDate) message(STATUS "SvnAuthor: ${SvnAuthor}") message(STATUS "SvnRev: ${SvnRev}") message(STATUS "SvnDate: ${SvnDate}") target_compile_definitions(${PROJECT_NAME} PUBLIC SVN_REV=${SvnRev}) target_compile_definitions(${PROJECT_NAME} PUBLIC SVN_AUTHOR=${SvnAuthor}) target_compile_definitions(${PROJECT_NAME} PUBLIC SVN_DATE=${SvnDate}) endif()
|
使用svn信息宏
c++打印svn信息
1 2 3 4 5 6 7 8
| #ifndef WIN32 # define MACRO_(v) #v # define SHOWMACOR(v) MACRO_(v) LogDebug("=============Svn Info==============="); LogDebug("Last Changed Author: {}", SHOWMACOR(SVN_AUTHOR)); LogDebug("Last Changed Rev: {}", SHOWMACOR(SVN_REV)); LogDebug("Last Changed Date: {}", SHOWMACOR(SVN_DATE)); #endif
|