CMake生成版本號

2021-06-08 13:55:36 字數 1318 閱讀 8992

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...