有一个 .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/