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的主要内容,如果未能解决你的问题,请参考以下文章

怎么看自己安装的opencv的版本