使用提交 ID 设置 cmake 项目描述

Set cmake project description with commit id

我刚刚学会了如何使用

project(ProjectName VERSION 1.0)

configure_file 玩版本并将其嵌入到二进制文件中。

project documentation 我看到它也接受描述字符串。

project(ProjectName VERSION 1.0 description_string)

所以我想使用提交 ID 作为描述字符串。我可以使用 git rev-parse HEAD 从命令行读取提交 ID,但如何使用它来设置描述?

你可以使用 FindGit module to find a git executable and then run it with execute_process 来得到结果,所以像这样:

find_package(Git REQUIRED)
execute_process(COMMAND "${GIT_EXECUTABLE}" rev-parse HEAD OUTPUT_VARIABLE COMMIT_ID OUTPUT_STRIP_TRAILING_WHITESPACE)
project(ProjectName VERSION 1.0 DESCRIPTION "${COMMIT_ID}")