在 shell 脚本中安全地定义 Qt 常量

发布于 2024-10-08 10:49:59 字数 301 浏览 1 评论 0原文

我的应用程序有 6 个版本,我每天晚上都会构建这些版本。 我的 .pro 文件如下所示:

DEFINES += \
TEN_INCH \
#TG_MODULE \
NEW_DIALOG

因此,为了自动构建不同的版本,我的 shell 脚本编辑了 .pro 文件,这要归功于 sed。这很糟糕,因为定义必须在自己的行上,而 Qt Creator 有时将它们全部放在同一行上(例如添加文件时)。结果是我的构建似乎有效,但事实并非如此。

那么,有没有更好的解决方案呢?像将定义传递给 qmake 之类的东西吗?

I have 6 versions of my application and I build then all every night.
My .pro file looks like that :

DEFINES += \
TEN_INCH \
#TG_MODULE \
NEW_DIALOG

Thus, so as to build the different version automatically, my shell script edits the .pro file, thanks to sed. This sucks because the defines must be on their own line, and Qt Creator sometimes put them all on the same (when adding a file for example). The result is that my build seems to work, but it isn't.

So, is there a better solution to do it ? Something like passing the defines to qmake ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苏璃陌 2024-10-15 10:49:59

不要编辑您的 .pro 文件。相反,使用 .pro 文件范围:

build_one {
  DEFINES += whatever
}
build_two {
  DEFINES += something_else
}

然后从 qmake 命令行激活它们:

qmake CONFIG+=build_one && make clean && make

Do not edit your .pro file. Instead, use .pro file scopes:

build_one {
  DEFINES += whatever
}
build_two {
  DEFINES += something_else
}

And then activate them from qmake command line:

qmake CONFIG+=build_one && make clean && make
别靠近我心 2024-10-15 10:49:59

嗯,为什么不重写脚本,使其形成整个 DEFINES 指令本身呢?

即使用 sed 查找现有的并将其整体替换为新形成的?在这种情况下,它是在一行上还是跨越多行都没有关系。

Hm, why don't you rewrite you script so it would form the whole DEFINES directive itself?

I.e. use sed to find existing one and replace it as a whole with newly formed one? In this case it wouldn't matter if it's on one line or spans several lines.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文