天天看點

有關自己用到的cmakelist的操作

做項目的時候經常需要cmakelist來做一些事情,用本文章來記錄自己用過的操作,省的來來回回的找

  1. 擷取git commit号中的tag來作為打包的版本
execute_process(
      COMMAND git describe --abbrev=8 --tags
      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
      OUTPUT_VARIABLE GIT_CODE_VERSION
      OUTPUT_STRIP_TRAILING_WHITESPACE
    )
    message(git_code_version:${GIT_CODE_VERSION})

    string(REPLACE "." ";" GIT_CODE_VERSION_LIST ${GIT_CODE_VERSION})	#将字元串分割成list
    list(LENGTH GIT_CODE_VERSION_LIST LEN)

    list(GET GIT_CODE_VERSION_LIST 0 MAJOR_VERSION)
    list(GET GIT_CODE_VERSION_LIST 1 MINOR_VERSION)
    list(GET GIT_CODE_VERSION_LIST 2 PATCH_VERSION)

    message(Package_Version: ${MAJOR_VERSION}.${MINOR_VERSION}.${PATCH_VERSION})
           
  1. 擷取系統版本号來區分打出來的包名
execute_process(COMMAND lsb_release -r --short 
					OUTPUT_VARIABLE version_num
					)
	
	if(${version_num} MATCHES "20.04")
           
  1. 根據系統類型來做不同操作
if(WIN32)

	elseif(UNIX)

	endif()
           

繼續閱讀