cmake生成版本號
(金慶的專欄)
原來的cmake需要用shell指令碼生成svn版本號,再作為cmake引數傳入。
cmake呼叫指令碼示例:
#!/bin/sh
# cmake.sh
servercoderoot=~/code/server
coderevnum=`svn info $ | grep revision | awk -f' ' ''`
cmake s -dcmake_build_type=release -dversion_revision=s
cmakelists.txt中如下配置:
configure_file(
"version.h.in"
"version.h"
)version.h.in如下:
#include
const std::string version_majoy("1");
const std::string version_minor("0");
const std::string version_revision("@version_revision@");
linux下執行cmake.sh會自動替換svn版本號。
現改為用find_package(subversion)方式,不必用shell指令碼生成svn版本號,
並且在windows上也可以生成版本號, cmake呼叫時不必傳version_revision引數。
set(root_dir $)
if(exists "$/.svn/")
find_package(subversion)
if(subversion_found)
subversion_wc_info($ project)
set(version_revision $)
endif(subversion_found)
endif(exists "$/.svn/")
configure_file(
"version.h.in"
"version.h"
)如果不是svn, 而是用hg, 可用如下指令碼:
if(exists "$/.hg/")
find_package(mercurial)
if(mercurial_found)
mercurial_wc_info($ er)
set(revision $)
set(changeset $)
set(branch $)
endif(mercurial_found)
endif(exists "$/.hg/")
python 自動生成版本號
本文適用於使用subversion版本控制的讀者.前一段時間研究了一下tortoisesvn的源 發現它使用 nant subwcrev.exe 來自動生成版本號的.subwcrev.exe 是tortoisesvn下的乙個命令列工具,安裝了tortoisesvn 就找到它.這裡補充一下tortoi...
git 生成版本號 git describe
如果使用git命令列工具,產生版本號?git describe如果符合條件的tag指向最新提交則只是顯示tag的名字 否則會有相關的字尾來描述該tag之後有多少次提交以及最新的提交commit id。不加任何引數的情況下,git describe 只會列出帶有注釋的tag git describe ...
MDK自動生成版本號
mdk編譯工程時自動生成乙個檔案版本號,格式為 v x.x.x build 2021 01 13 11 08 41 by 計算機名 我的操作希望對讀到的小夥伴有幫助!檔案結構是這樣的 test svn mdk proj test.uvprojx getversionnumber svnreion.b...