cmake类似qmake字符串文字

时间:2019-02-19 16:53:30

标签: c++ qt cmake qmake

.make是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功能以某种方式准备这些字符串

1 个答案:

答案 0 :(得分:1)

Qmake的字符串文字只是预处理器宏定义。 在CMake中,可以使用add_compile_definitionstarget_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}")

PS。您可以使用$ENV{GIT_EXE_PATH}

访问环境变量