c++ - cmake 类似于 qmake 字符串文字

标签 c++ qt cmake qmake

有一个 .pri 作为 qmake 项目的一部分,其中包含一些全局字符串定义:

STR1 = string literal 1
STR2 = string literal 2
GIT_VERSION = $$system($$ENV_GIT_EXE_PATH describe --long)

以及代码中使用的这些字符串:

QString str1 = QStringLiteral(STR1);
QString str2 = QStringLiteral(STR2);
QString str3 = QStringLiteral(GIT_VERSION);

如何使用cmake项目实现这个功能?我无法更改源代码 (C++.h/.cpp),必须使用 cmake 功能以某种方式准备这些字符串

最佳答案

Qmake 的字符串字面量只不过是预处理器宏定义。 在 CMake 中,这可以通过 add_compile_definitions 来完成。或 target_compile_definitions

所以类似的是:

add_compile_definitions(STR1="string literal 1")
add_compile_definitions(STR2="string literal 2")
execute_process(COMMAND ${ENV_GIT_EXE_PATH} describe --long
OUTPUT_VARIABLE git_version)
add_compile_definitions(GIT_VERSION="${git_version}")

附言。您可以使用 $ENV{GIT_EXE_PATH}

访问环境变量

关于c++ - cmake 类似于 qmake 字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54771266/

相关文章:

python - PyQt 中的复杂模型项

c++ - cmake boost find_depedency 配置

makefile - CMake:是否可以在每次制作后运行 CONFIGURE_FILE?

c++ - opencv C++ 神经网络 predict() 函数抛出 "Bad argument"错误

c++ - 什么创建了堆栈?

c++ - QT 5 给设计器添加继承自QGraphicsView的自定义widget

svn - 使用CMake获取构建时Subversion修订版

c++ - qt5.5不显示系统托盘

c++ - 如何使用 http ://www. opengl-tutorial.org/正确学习 OpenGL?

python - 用于 Qt 4.7.4 的 PyQt 设置