.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功能以某种方式准备这些字符串
答案 0 :(得分:1)
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}")
PS。您可以使用$ENV{GIT_EXE_PATH}