version.cmake
Posted Dirge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了version.cmake相关的知识,希望对你有一定的参考价值。
find_package(Git)
# 生成版本描述字符串类似 TAG-X-gHASH
execute_process(COMMAND $GIT_EXECUTABLE describe --abbrev=6 --dirty --always --tags
WORKING_DIRECTORY $CMAKE_SOURCE_DIR
OUTPUT_VARIABLE GIT_REPO_VERSION
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# 获取最新 commit 日期,YYYY-MM-DD
execute_process(COMMAND $GIT_EXECUTABLE log -1 --format=%ci --date=short
WORKING_DIRECTORY $CMAKE_SOURCE_DIR
OUTPUT_VARIABLE GIT_REPO_DATE
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# 获取最新 commit Hash
execute_process(COMMAND $GIT_EXECUTABLE log -1 --format=%H
WORKING_DIRECTORY $CMAKE_SOURCE_DIR
OUTPUT_VARIABLE GIT_REPO_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
# 写入头文件宏定义的版本字符串,日期和 Hash
file(WRITE $PROJECT_BINARY_DIR/repo_version.h
"#define REPO_VERSION \\"$GIT_REPO_VERSION\\"\\n#define REPO_DATE \\"$GIT_REPO_DATE\\"\\n#define REPO_HASH \\"$GIT_REPO_HASH\\"\\n"
)
# 包含引用目录,源文件可以直接用 #include "repo_version.h" 包含
include_directories($PROJECT_BINARY_DIR)
诸神对凡人心生艳羡,厌倦天堂。
以上是关于version.cmake的主要内容,如果未能解决你的问题,请参考以下文章