c++ - qmake 相当于 cmake execute_process()

标签 c++ cmake qmake

我有一个使用 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 上测试。

关于c++ - qmake 相当于 cmake execute_process(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52163220/

相关文章:

ios - OS X 上 OpenCL 的 CMakeListx.txt 文件

cmake - 在 Visual Studio Online 托管代理上使用 CMake 构建

c++ - Qt 5.2.1 添加wwWidgets到项目中

c++ - 平均光流

C++ Forward方法调用以在没有继承的情况下嵌入对象

c++ - 颜色处理

c++ - 使用 CMake 2.8.1 为 Visual Studio 2005 添加编译器标志

C++ COM 互操作 : Using C# namespace with dot notation in c++

Qt 和 QMake 构建目录

qt - 如何通过 Qt 项目文件将命令的输出作为编译器标志传递?