运行 来自 qmake 的脚本以获取内部版本号
Running script from qmake to get build number
我正在尝试向我的 Qt 项目添加一个内部版本号,方法是将该编号作为 DEFINE 包含在内。我找到了一些例子,但我似乎无法让它们发挥作用。基本上 build.sh 是从命令行调用的,反映了当前的内部版本号。该数字应在 qmake 中设置为 #DEFINE,并包含在我的代码中
我在 .pro 文件中有以下代码
unix: {
BUILDNO = $$system(./build.sh)
DEFINES += BUILD_NUM=$${BUILDNO}
}
else:
DEFINES += BUILD_NUM=0
我的 build.sh 文件中的这段代码
#!/bin/bash
n=25;#the variable that I want to be incremented
next_n=$[$n+1]
sed -i "/#the variable that I want to be incremented$/s/=.*#/=$next_n;#/" [=12=]
echo $n
以及我的代码中的示例行:
a.setApplicationVersion(QString("%1.%2.%3").arg(VERSION_MAJ).arg(VERSION_MIN).arg(BUILD_NUM));
运行 命令行中的 build.sh 脚本工作正常。它向命令行回显一个数字,并递增脚本中的数字。当我构建我的项目时,这个数字会增加,所以我知道它正在执行。但是当我打印 DEFINE 变量时,回显的数字没有显示在我的代码中。但是...在 Linux 上,它始终是 0
您的 .pro 语法不正确,因为 "else" 命令不应使用“:”,而应使用“{}”,所以之前的命令总是被覆盖。
unix: {
BUILDNO = $$system(sh $$(PWD)/build.sh)
DEFINES += BUILD_NUM=$${BUILDNO}
}
else {
DEFINES += BUILD_NUM=0
}
正如 @Matt 指出的,如果命令在同一行,您可以使用“:”:
unix: {
BUILDNO = $$system(sh $$(PWD)/build.sh)
DEFINES += BUILD_NUM=$${BUILDNO}
}
else: DEFINES += BUILD_NUM=0
我正在尝试向我的 Qt 项目添加一个内部版本号,方法是将该编号作为 DEFINE 包含在内。我找到了一些例子,但我似乎无法让它们发挥作用。基本上 build.sh 是从命令行调用的,反映了当前的内部版本号。该数字应在 qmake 中设置为 #DEFINE,并包含在我的代码中
我在 .pro 文件中有以下代码
unix: {
BUILDNO = $$system(./build.sh)
DEFINES += BUILD_NUM=$${BUILDNO}
}
else:
DEFINES += BUILD_NUM=0
我的 build.sh 文件中的这段代码
#!/bin/bash
n=25;#the variable that I want to be incremented
next_n=$[$n+1]
sed -i "/#the variable that I want to be incremented$/s/=.*#/=$next_n;#/" [=12=]
echo $n
以及我的代码中的示例行:
a.setApplicationVersion(QString("%1.%2.%3").arg(VERSION_MAJ).arg(VERSION_MIN).arg(BUILD_NUM));
运行 命令行中的 build.sh 脚本工作正常。它向命令行回显一个数字,并递增脚本中的数字。当我构建我的项目时,这个数字会增加,所以我知道它正在执行。但是当我打印 DEFINE 变量时,回显的数字没有显示在我的代码中。但是...在 Linux 上,它始终是 0
您的 .pro 语法不正确,因为 "else" 命令不应使用“:”,而应使用“{}”,所以之前的命令总是被覆盖。
unix: {
BUILDNO = $$system(sh $$(PWD)/build.sh)
DEFINES += BUILD_NUM=$${BUILDNO}
}
else {
DEFINES += BUILD_NUM=0
}
正如 @Matt 指出的,如果命令在同一行,您可以使用“:”:
unix: {
BUILDNO = $$system(sh $$(PWD)/build.sh)
DEFINES += BUILD_NUM=$${BUILDNO}
}
else: DEFINES += BUILD_NUM=0