为qmake目标指定具有可变数量的args的多个命令

时间:2017-11-16 21:50:09

标签: qt qmake

在使用QMake的Qt项目中的

我有一个带有自定义命令my_tool的目标,可以接受任意数量的参数:

target.commands = my_tool.exe arg01 arg02  # works fine

如果我现在需要两次运行该命令......

target.commands = my_tool.exe arg01 arg02
target.commands += my_tool.exe another_arg01 another_arg02  # breaks

...对于该目标,第一个命令失败,因为第二个命令用作第一个命令的参数。如:当我输出第一个命令的参数时,它说:

ARGV[0]: my_tool.exe
ARGV[1]: arg01
ARGV[2]: arg02
ARGV[3]: my_tool.exe
ARGV[4]: another_arg01
ARGV[5]: another_arg02

如何添加第二个命令以便单独处理?

感谢您提供任何帮助或指示。 :)

1 个答案:

答案 0 :(得分:0)

方式1

一种可能性是简单地使用两个单独的目标:

target1.commands = my_tool.exe arg01 arg02
target2.commands = my_tool.exe another_arg01 another_arg02

......让一个人依赖另一个人:

target1.depends = target2

方式2

另一种方法是在命令之间指定$$escape_expand(\n\t)&&

target.commands = my_tool.exe arg01 arg02  $$escape_expand(\n\t)  my_tool.exe another_arg01 another_arg02

target.commands = my_tool.exe arg01 arg02  &&  my_tool.exe another_arg01 another_arg02

因此有很多方法可供选择。 :)