qmake 等效于 cmake execute_process()

Posted

技术标签:

【中文标题】qmake 等效于 cmake execute_process()【英文标题】:qmake equivalent of cmake execute_process() 【发布时间】:2018-09-04 09:35:09 【问题描述】:

我有一个使用 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 有没有等效的方法?

【问题讨论】:

为什么要切换到qmake? 这是一个使用 qt creator 创建的不同项目,我们现在不想将所有内容都更改为 cmake。 【参考方案1】:

我找到了答案:

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 上测试。

【讨论】:

以上是关于qmake 等效于 cmake execute_process()的主要内容,如果未能解决你的问题,请参考以下文章

make makefile cmake qmake都是什么,有什么区别

从 QMake 到 CMake。 (不同的路径级别)

CMake不知道Qt4 qmake在哪里

make, cmake, qmake

使用 cmake 部署 QtCreator

cmake nmake qmake 的区别联系