qmake "The *= operator"

来源:互联网 发布:window 文件共享端口 编辑:程序博客网 时间:2024/06/05 18:27

 

今天浏览了下Qtwenkit的测试例子(./src/testlib/testlib.pro),发现其中的pro中有:

DEFINES *= QT_NO_CAST_TO_ASCII \
    QT_NO_CAST_FROM_ASCII \
    QTESTLIB_MAKEDLL \
    QT_NO_DATASTREAM
 
 对 *= 赋值的意思有点模糊了,应该是如果没有赋值过才执行赋值的意思。 经查看文档,确认了就是这个意思:
 
The *= operator adds a value to the list of values in a variable, but only if it is not already present. This prevents values from being included many times in a variable. For example:
  下面例子:如果还没有定义QT_DLL,那么就定义它:
 DEFINES *= QT_DLL
In the above line, QT_DLL will only be added to the list of pre-processor defines if it is not already defined. Note that the unique() function can also be used to ensure that a variables only contains one instance of each value.


The ~= operator replaces any values that match a regular expression with the specified value:

 DEFINES ~= s/QT_[DT].+/QT
In the above line, any values in the list that start with QT_D or QT_T are replaced with QT.

原创粉丝点击