带"的Qmake范围语法包含"功能

时间:2017-09-06 14:46:51

标签: qt qmake

我写了一些看起来像这样的qmake:

contains( DEFINES, SOME_DEF ): DEFINES+=SOME_OTHER_DEF

结果是始终执行我认为有条件的,即DEFINES+=SOME_OTHER_DEF

我将行改为:

contains( DEFINES, SOME_DEF ){ DEFINES+=SOME_OTHER_DEF }

它的工作原理和我现在预期的一样。问题是,我不明白为什么我不能使用原始语法?

这里是contains文档(没有解释有关使用:的详细信息) http://doc.qt.io/qt-5/qmake-test-function-reference.html#contains-variablename-value

以下是范围文档,它似乎支持我尝试做的事情:

http://doc.qt.io/qt-5/qmake-language.html#scopes-and-conditions

它说:

  

您可以...使用:运算符执行单行条件   分配。

我之前肯定以这种方式使用了:(但我猜不会使用contains?)。我怎么不明白?

其他信息(以可读的方式回复评论):

测试跑了:

DEFINES+=A
DEFINES+=B
contains( DEFINES, A ) : contains( DEFINES, B ) : message( 1 )
contains( DEFINES, A ) : contains( DEFINES, C ) : message( 2 )
contains( DEFINES, A ):contains( DEFINES, B ):message( 3 )
contains( DEFINES, A ):contains( DEFINES, C ):message( 4 )

结果:

Project MESSAGE: 1
Project MESSAGE: 3

所以它不是白色空间。

我认为我的问题无效。

1 个答案:

答案 0 :(得分:0)

看起来像是关于太空。似乎以下应该有效,但我不确定

contains( DEFINES, SOME_DEF ):DEFINES+=SOME_OTHER_DEF

当我得到它时,它被设计成用作逻辑AND运算符。

conditionA:conditionB {
  ...
}