导出
将依赖项和属性导出到其他产品。 更多...
- 所有成员的列表,包括继承的成员
- 导出是 所有项目列表 的一部分。
属性
- prefixMapping : 变量
详细描述
导出项目可以出现在一个 产品 项中。它定义了一个可以由其他产品依赖的带有产品名称的 模块。附加到导出项目的属性将在定义导出项目的所有产品中生效。例如,考虑以下两个产品
Product { name: "A" Export { Depends { name: "cpp" } cpp.includePaths: exportingProduct.sourceDirectory cpp.defines: ["USING_" + exportingProduct.name.toUpperCase()] } } Product { name: "B" Depends { name: "A" } }
产品 B 中的源代码将能够使用来自产品 A 的头文件,而无需指定完整的路径,因为包含路径已通过 A 的导出项目告知编译器。此外,产品 B 将使用定义 USING_A
的宏进行编译。
除非在 导出 项目中明确指定,否则不会导出依赖项的关联 产品 的模块
导出依赖项的关系是传递的。依赖于依赖于产品 B-导出-A 的产品 C 也会直接依赖于 A,从而继承 A 导出的包含路径和预处理器宏。
在导出项目中,您可以使用 exportingProduct
变量来引用定义导出项目的产品。使用 importingProduct
变量来引用拉入结果模块的产品
Product { name: "D" Export { Depends { name: "cpp" } cpp.includePaths: [exportingProduct.sourceDirectory, importingProduct.buildDirectory] } }
属性文档
[since 1.12] prefixMapping : 变量 |
此属性允许在非部署和部署上下文中提供导出值的翻译。它是一个具有属性 prefix
和 replacement
的对象数组。数组的元素应用于此项目中设置的其它所有属性,使得如果属性的值以 prefix
开头,则该前缀被 replacement
替换。通常用于 C/C++ 包含路径。例如,在一个同时提供包含文件的库中(在将其作为更大项目的一部分构建时直接从其源目录包含,以及在一些安装在的位Hp构建的项目中构建对它无关的项目),您可以编写以下内容
Export { Depends { name: "cpp" } cpp.includePaths: [exportingProduct.sourceDirectory] prefixMapping: [{ prefix: exportingProduct.sourceDirectory, replacement: FileInfo.joinPaths(qbs.installPrefix, "include") }] }
默认值: 未定义
此属性是在 Qt 1.12 中引入的。
另请参阅Exporter.qbs 和 Exporter.pkgconfig。
©2023 嵌入本文件的 Qt 公司文档贡献版权属于各自的拥有者。本文件中提供的文档是根据自由软件基金会的发布,遵循GNU 自由文档许可证版本 1.3 进行授权的。Qt 及其关联标志是芬兰的 Qt 公司及其它国家/地区的商标。所有其他商标属于其各自的所有者。