qmake 相当于 cmake execute_process()

qmake equivalent of cmake execute_process()

我有一个使用 CMake 的项目,我通过以下方式获取当前 git 哈希:

if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
    execute_process(
        COMMAND git log -1 --format=%H
        WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
        OUTPUT_VARIABLE GIT_COMMIT_HASH
        OUTPUT_STRIP_TRAILING_WHITESPACE
    )
else()
    set(GIT_COMMIT_HASH "unknown")
endif()

add_definitions("-DGIT_COMMIT_HASH=\"${GIT_COMMIT_HASH}\"")

qmake 是否有等效的方法?

我找到了答案:

exists( $$PWD/.git) {
    GIT_COMMIT_HASH = $$system(git log -1 --format=%H)
}else{
    GIT_COMMIT_HASH = "unknown"
}

DEFINES += GIT_COMMIT_HASH=\\"$$GIT_COMMIT_HASH\\"

适合我。目前在 Linux 上测试,稍后我会在 Windows 上测试。