在C++库中嵌入Git Commit ID
方便版本管理与代码追溯。
![在C++库中嵌入Git Commit ID](/content/images/size/w1200/2024/01/schamsy_a_beautiful_house_inside_of_a_cave_embedded_in_the_moun_b42df6ca-3fb3-4751-b0b6-29c373573874.jpg)
在最终生成的二进制库文件中嵌入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)