在C++库中嵌入Git Commit ID

方便版本管理与代码追溯。

在C++库中嵌入Git Commit ID
封面图片由Midjourney生成

在最终生成的二进制库文件中嵌入Git Commit ID,可能不是最完美的方案,但是解决了我现在遇到的问题。

首先在CMake文件中获取git hash。

find_package(Git QUIET)
if(GIT_FOUND)
    execute_process(
        COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
        OUTPUT_VARIABLE GIT_HASH
        OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET
        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif()
message(STATUS "Project version: ${GIT_HASH}")

# Define VARIABLE to be used in source code
configure_file(${PROJECT_SOURCE_DIR}/projectConfigure.h.in
               ${PROJECT_BINARY_DIR}/projectConfigure.h @ONLY)