cmake类似于Qmake String文字

cmake analogues to qmake string literals

本文关键字:文字 String Qmake 类似于 cmake      更新时间:2023-10-16

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

访问环境变量