属性
提供属性的条件设置。 更多...
- 所有成员列表,包括继承成员
- 属性是所有项目列表的一部分。
属性
- condition : 布尔
- overrideListProperties : 布尔
详细说明
属性项是设置多个属性值的辅助项。
在以下示例中,如果项目是为 Windows 构建的,将设置两个属性
Product { Properties { condition: qbs.targetOS.includes("windows") cpp.defines: ["ON_WINDOWS"] cpp.includePaths: ["extraWindowsIncludes"] } }
可以指定多个属性项来设置依赖于不同条件的属性。出现顺序很重要。语义类似于 if-else 链。以下示例
Product { Properties { condition: qbs.targetOS.includes("windows") cpp.defines: ["ON_WINDOWS"] cpp.includePaths: ["myWindowsIncludes"] } Properties { condition: qbs.targetOS.includes("linux") cpp.defines: ["ON_LINUX"] cpp.includePaths: ["myLinuxIncludes"] } cpp.defines: ["ON_UNKNOWN_PLATFORM"] }
等同于
Product { cpp.defines: { if (qbs.targetOS.includes("windows")) return ["ON_WINDOWS"]; if (qbs.targetOS.includes("linux")) return ["ON_LINUX"]; return ["ON_UNKNOWN_PLATFORM"]; } cpp.includePaths: { if (qbs.targetOS.includes("windows")) return ["myWindowsIncludes"]; if (qbs.targetOS.includes("linux")) return ["myLinuxIncludes"]; return base; } }
在属性项中,可以访问属性的外部值。
Product { Properties { condition: qbs.targetOS.includes("windows") cpp.defines: outer.concat("ON_WINDOWS") // === ["FOO", "ON_WINDOWS"] } Properties { condition: qbs.targetOS.includes("linux") cpp.defines: ["ON_LINUX"] // === ["ON_LINUX"] } cpp.defines: ["FOO"] }
我们建议只针对互斥条件使用属性项。如果有多个属性需要根据同一条件设置,这特别有用。
属性说明
condition : 布尔 |
用于此项目其他绑定的条件。
这是一个必填属性,没有默认值。
overrideListProperties : 布尔 |
在此项目内设置的列表属性将覆盖来自模块的值,而不是将它们合并,这是默认行为。在极少数情况下,如果你所依赖的模块向列表属性插入了对某些产品有问题的值,请使用此选项。
默认值: false
©2023 The Qt Company Ltd. 本文档内部的贡献者是各自的版权所有者。本提供的文档根据GNU 自由文档许可证版本 1.3的条款进行许可,该许可证由自由软件基金会发布。Qt 和相应的商标是芬兰和/或全球其他国家的 The Qt Company Ltd. 的注册商标。所有其他商标均为其各自所有者的财产。