CMAKE 準確獲取版本號

 每次構建,需要一個對應的版本號,用於記錄二機制文件和源代碼自己的關係。

現在大家都在用CI,在CI構建中,獲取到版本號,但沒有在CI中構建呢?看來這個版本號獲取還要下一層。我們可以在MAKEFILE中獲取版本號,將這個信息傳遞到MAKE過程中。

我們使用了CMAKE構建一個項目。獲取版本的代碼如下。

 

IF(EXISTS "${ROOT_DIR}/.svn/")

  FIND_PACKAGE(Subversion)

  IF(SUBVERSION_FOUND)

    Subversion_WC_INFO(${ROOT_DIR} Project)

    SET(VERSION_REVISION ${Project_WC_REVISION})

  ENDIF(SUBVERSION_FOUND)

ENDIF(EXISTS "${ROOT_DIR}/.svn/")       

 

 紅色部分即爲SVN的版本號,對於到源代碼的版本。在構建目標文件的時候,使用這個信息。

SET_TARGET_PROPERTIES(public_common PROPERTIES VERSION 1.7.${VERSION_REVISION} SOVERSION 1)

運行結果:

 

build%ll *security*

lrwxrwxrwx 1 build usergrp     30 12-24 13:08 libpublic_common_security.so -> libpublic_common_security.so.1*

lrwxrwxrwx 1 build usergrp     39 12-24 13:08 libpublic_common_security.so.1 -> libpublic_common_security.so.1.7.265234*

-rwxrwxr-x 1 build usergrp 156538 12-24 13:05 libpublic_common_security.so.1.7.*

-rwxrwxr-x 1 build usergrp 156538 12-24 13:08 libpublic_common_security.so.1.7.265234*

 

可以看到,版本號正確,並且已經修改了指向

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章