qbs
包含一般属性。 更多信息...
自 | Qbs 1.0 |
属性
- 架构 : 字符串
- 架构列表 : 字符串列表
- 构建变种 : 字符串
- 构建变种列表 : 字符串列表
- 配置名称 : 字符串
- 调试信息 : 布尔值
- 启用调试代码 : 布尔值
- 安装 : 布尔值
- 安装目录 : 字符串
- 安装前缀 : 字符串
- 安装根目录 : 字符串
- 安装源基础 : 字符串
- 优化 : 字符串
- 配置文件 : 字符串列表
- Shell 路径 : 路径
- Sysroot : 字符串
- 目标操作系统 : 字符串列表
- 目标平台 : 字符串
- 工具链 : 字符串列表
- 工具链类型 : 字符串
- 版本 : 字符串
- 主版本号 : 整数
- 次版本号 : 整数
- 补丁版本号 : 整数
详细说明
qbs
模块在每个产品中都是隐式加载的。它包含当前构建环境的属性,独立于使用的编程语言和工具链。
安装属性
通常,您使用 Group 元素来指定文件的安装目标目录。要安装一组文件,将 Group 的 qbs.install 属性设置为 true
。qbs.installDir 的值指定了文件将要安装的目录路径。您可以指定所有安装目录的基础目录作为 qbs.installPrefix 的值。
例如,以下属性指定了在 Windows 和 Linux 上安装一组 QML 文件和应用程序可执行文件的位置
Application { name: "myapp" Group { name: "Runtime resources" files: "*.qml" qbs.install: true qbs.installDir: condition: qbs.targetOS.includes("unix") ? "share/myapp" : "resources" } Group { name: "The App itself" fileTagsFilter: "application" qbs.install: true qbs.installDir: "bin" } qbs.installPrefix: condition: qbs.targetOS.includes("unix") ? "usr/local" : "MyApp" }
在 Windows 上,QML 文件最终将安装到 MyApp\resources
,应用程序可执行文件安装到 MyApp\bin
,例如在 C:\Program Files
之下。在 Linux 上,QML 文件将安装到 /usr/local/share/myapp
,可执行文件安装到 /usr/local/bin
。
默认情况下,qbs.installRoot 在构建目录中创建用于打包程序的 install-root
目录。这是一个临时目录,通常在运行应用时不可用,因此不应在项目文件中设置。您可以从命令行覆盖默认值,如安装文件中所述。
属性复用
以下属性是针对 产品复用 特定的
属性文档
architecture : 字符串 |
目标平台的处理器体系结构。
undefined
表示目标平台是体系结构无关的(例如 CLR 或 JVM)。
该属性通常在配置文件中设置。
常用值包括:"x86"
、"x86_64"
和 "arm"
。
支持的处理器体系结构
此表描述了体系结构属性的可能的值
体系结构 | 描述 |
---|---|
"78k" | 由 Renesas Electronics 制造的基于 16 位和 8 位累加器寄存器银行 CISC 架构微控制器系列 |
"arm" | 由 Acorn RISC Machine 开发的 32 位 RISC 架构计算机处理器 注意:ARM 架构有众多子变体。一些特殊的 Qbs 模块将它们区分开来,使用了如 |
"arm64" | 由 Acorn RISC Machine 开发的 64 位 RISC 架构计算机处理器 |
"avr" | 由 Microchip Technology 制造的 8 位修改过的哈佛 RISC 架构微控制器系列 |
"avr32" | 由 Atmel 开发的 32 位 RISC 微控制器系列 |
"c166" | 由 Infineon 开发的 16 位架构微控制器系列 |
"cr16" | 由 National Semiconductor 开发的 16 位紧凑型 RISC 架构微控制器系列 |
"e2k" | 由莫斯科 SPARC 技术中心(MCST)和 TSMC 制造的 512 位俄罗斯宽 VLIW 微处理器 |
"hcs8" | Freescale Semiconductor 的 8 位 HC08 和 S08 微控制器系列 |
"hcs12" | Freescale Semiconductor 的 16 位 HC12 和 S12 微控制器系列 |
"hppa" | Hewlett-Packard 开发的 64 位 PA-RISC 处理器架构 |
"ia64" | 由 Intel 开发,属于 IA-64 家族的 64 位 ISA 架构处理器 |
"m16c" | 由 Renesas Electronics 制造的高 ROM 代码效率的 16 位 CISC 微控制器 |
"m32c" | 由 Renesas Electronics 制造的具有高 ROM 代码效率的 32 位和 16 位 CISC 微控制器 |
"m32r" | 由 Renesas Electronics 制造的适用于通用工业、车载系统、数字 AV 设备和数字成像设备的 32 位 RISC 微控制器 |
"m68k" | 由 Motorola Semiconductor Products Sector 开发的 16 位和 32 位 CISC 微处理器,并由 NXP 进一步改进为 ColdFire 架构 |
"mcs251" | 8 位、16 位和 32 位微控制器系列,它是 "mcs51" 系列的下一个二进制兼容的生成 |
"mcs51" | 由 Intel 开发的 8 位哈佛架构微控制器系列 |
"mips" | 由 MIPS Computer Systems 开发的无交错流水级的 32 位 RISC 微处理器架构 |
"mips64" | 由 MIPS Computer Systems 开发的无交错流水级的 64 位 RISC 微处理器架构 |
"msp430" | 由 Texas Instruments 制造的 16 位混合信号微控制器系列 |
"ppc" | 由 Apple–IBM–Motorola 联盟开发的 32 位 RISC 处理器系列 |
"ppc64" | 由 Apple–IBM–Motorola 联盟开发的 64 位 RISC 处理器系列 |
"r32c" | 由瑞萨电子制造的具有提高代码效率和处理性能的32位CISC微控制器 |
"rh850" | 瑞萨电子制造的32位汽车微控制器系列 |
"riscv" | 基于已建立的RISC原则的开放和免费标准指令集架构 |
"rl78" | 瑞萨电子制造的具有3级指令流水线和基于16位和8位累加器的寄存器银行CISC架构的微控制器系列 |
"rx" | 由瑞萨电子制造的高性能32位CISC微控制器系列 |
"s390x" | IBM开发的64位和32位System/390处理器架构 |
"sh" | 由日立开发并由瑞萨电子制造的32位RISC架构处理器系列 |
"sparc" | 由太阳微系统和富士通开发的32位RISC架构处理器系列 |
"sparc64" | 由太阳微系统和富士通开发的64位RISC架构处理器系列 |
"stm8" | 意法半导体制造的8位微控制器系列 |
"v850" | 瑞萨电子制造的32位RISC微控制器系列 |
"x86" | 由英特尔开发的32位ISA架构处理器系列 |
"x86_16" | 由英特尔开发的16位ISA架构处理器系列 |
"x86_64" | 由AMD开发的64位ISA架构处理器系列 |
"xtensa" | 由Tensilica开发的具有紧凑的16位和24位指令集的32位架构 |
默认值:未定义
[自Qbs 1.9起] architectures : stringList |
产品将构建的架构。
默认值:未定义
此属性自Qbs 1.9引入。
buildVariant : string |
当前构建的构建变体的名称。
可能的值是 "debug"
,"release"
和 "profiling"
。调试构建通常包含调试应用所需的额外调试符号,并且关闭了优化。分析构建通常包含调试符号,并且打开了优化。这对于分析工具或需要在发布构建中保留调试符号时很有用。发布构建是一个没有调试信息且启用优化的构建。
默认值:如果 qbs.configurationName 是 "release"
则为 "release"
。否则 "debug"
[自Qbs 1.9起] buildVariants : stringList |
将为该产品构建的构建变体。
默认值:未定义
此属性自Qbs 1.9引入。
[只读,自Qbs 1.6起] configurationName : string |
debugInformation : bool |
是否生成调试信息。
默认值:如果 qbs.buildVariant 是 "debug"
或 "profiling"
则为 true
。否则 false
。
enableDebugCode : bool |
是否在产品中启用调试功能。不要与生成调试符号或代码优化级别混淆。
当启用时,此属性更改以下内容
- 向Windows链接器传递一个标志以链接到调试Windows CRT(公共运行时)库(例如 /MTd 而不是 /MT)
当禁用时,此属性更改以下内容
- 向编译器传递
NDEBUG
定义
通常,此属性在调试构建中启用,在发布或分析构建中禁用。
默认值:调试构建为 true
,否则为 false
。
install : bool |
是否要安装某些文件集。
通常,此属性在Group项目中设置,以标记多个文件为可安装。
注意:对于此属性被自动启用的工件,将自动接收到文件标记"installable"
。这对于编写与打包相关的规则很有用。
默认值:false
installDir : string |
[since Qbs 1.1] installPrefix : string |
全局安装前缀。它在installDir的所有值之前自动添加。
此属性的值在安装上下文中相对于installRoot。
默认值:Unix上为"/usr/local"
,否则为""
此属性是在Qbs 1.1中引入的。
[since Qbs 1.4] installRoot : string |
全局安装根。它在installPrefix的安装上下文中自动添加。
注意:此属性与installDir和installPrefix基本不同,因为它不应该对正在构建的代码可见。实际上,安装根通常是用于打包二进制的临时位置,因此不应假定它们在运行时将位于该位置。同样地,此属性通常不会从项目文件中设置。
默认值:<build dir>/install-root
此属性是在Qbs 1.4中引入的。
[since Qbs 1.4] installSourceBase : string |
optimization : string |
[since Qbs 1.9] profiles : stringList |
[since Qbs 1.5] shellPath : path |
与命令行解释器对应的平台特定文件路径。
在Windows上,这是cmd.exe
的路径,该路径保存在COMSPEC
环境变量中(通常是C:/Windows/System32/cmd.exe
),在Unix-like平台上,这是/bin/sh
。
默认值:Windows上的"%COMSPEC%"
,Unix上的"/bin/sh"
此属性是在Qbs 1.5中引入的。
sysroot : string |
目标平台的sysroot
。
通常在配置文件中设置此属性以进行交叉编译。
默认值:未定义
[只读] targetOS : stringList |
包含描述用于构建项目的操作系统和操作系统家族的字符串值列表。
此属性基于targetPlatform属性计算得出,通常用于条件语句中测试特定的操作系统或操作系统家族。
Group { // Includes all Unix-like platforms, such as: Linux, BSD, Apple platforms and others. condition: qbs.targetOS.includes("unix") files: ... } Group { // Includes all Apple platforms, such as macOS, iOS, and iOS Simulator. condition: qbs.targetOS.includes("darwin") files: ... } Group { // Includes only macOS condition: qbs.targetOS.includes("macos") files: ... }
避免为此目的使用targetPlatform。例如,而不是
qbs.targetPlatform === "macos" || qbs.targetPlatform === "ios" || qbs.targetPlatform === "tvos" || qbs.targetPlatform === "watchos"
使用
qbs.targetOS.includes("darwin")
然而,在某些情况下,使用targetPlatform是可以接受的,例如,当结果条件更简单但仍正确时
qbs.targetPlatform === "linux"
versus
qbs.targetOS.includes("linux") && !qbs.targetOS.includes("android")
有关可能的完整值列表,请参阅targetPlatform和targetOS之间的关系。
默认值:未定义
[since 1.11] targetPlatform : string |
您想要为构建的操作系统。
此属性通常会设置在配置文件中或为特定产品,其中的目标操作系统始终是已知的(例如,用原生代码编写的Apple Watch应用)。
例如,用于构建iOS仿真平台配置文件的属性设置为ios-simulator
值。
profiles.xcode-iphonesimulator.qbs.targetPlatform: "ios-simulator"
通常应将此属性视为只写,避免使用它来测试当前目标操作系统。相反,应使用targetOS属性来进行条件测试。
targetPlatform和targetOS之间的关系
此表描述了可能的值以及targetPlatform
和targetOS属性之间的匹配关系。
目标平台 | 目标操作系统 |
---|---|
"aix" | ["aix", "unix"] |
"android" | ["android", "linux", "unix"] |
"dos" | ["dos"] |
"freebsd" | ["freebsd", "bsd", "unix"] |
"haiku" | ["haiku"] |
"hpux" | ["hpux", "unix"] |
"hurd" | ["hurd", "unix"] |
"integrity" | ["integrity", "unix"] |
"ios" | ["ios", "darwin", "bsd", "unix"] |
"ios-simulator" | ["ios-simulator", "ios", "darwin", "bsd", "unix"] |
"linux" | ["linux", "unix"] |
"lynx" | ["lynx"] |
"macos" | ["macos", "darwin", "bsd", "unix"] |
"netbsd" | ["netbsd", "bsd", "unix"] |
"openbsd" | ["openbsd", "bsd", "unix"] |
"os2" | ["os2"] |
"qnx" | ["qnx", "unix"] |
"solaris" | ["solaris", "unix"] |
"tvos" | ["tvos", "darwin", "bsd", "unix"] |
"tvos-simulator" | ["tvos-simulator", "tvos", "darwin", "bsd", "unix"] |
"unix" | ["unix"] |
"vxworks" | ["vxworks"] |
"watchos" | ["watchos", "darwin", "bsd", "unix"] |
"watchos-simulator" | ["watchos-simulator", "watchos", "darwin", "bsd", "unix"] |
"windows" | ["windows"] |
"none" | ["none"] |
未定义 | [] |
注意:"none"值通常用于裸机平台。
默认值:Host.platform()
此属性是在Qt 1.11中引入的。
另请参阅:目标平台。
toolchain : stringList |
包含描述用于构建项目的工具链和工具链家族的字符串值列表。
此属性从toolchainType属性推导而来,并通常用于条件语句中测试特定的工具链或工具链家族。
Properties { // flags for GCC condition: qbs.toolchain.includes("gcc") cpp.commonCompilerFlags: ... } Properties { // flags for MSVC condition: qbs.toolchain.includes("msvc") cpp.commonCompilerFlags: ... }
与toolchainType不同,它包含单个值,qbs.toolchain
是一个包含工具链家族的字符串列表。这使得条件和检查更加简单。例如,而不是
(qbs.toolchainType === "xcode" || qbs.toolchainType === "clang" || qbs.toolchainType === "gcc")
使用
qbs.toolchain.includes("gcc")
由于XCode、GCC和Clang属于"gcc"
家族。
toolchainType和toolchain之间的关联
此表描述了toolchainType
属性和toolchain
属性之间的可能值和匹配关系
工具链类型 | 工具链 |
---|---|
"clang" | ["clang", "llvm", "gcc"] |
"clang-cl" | ["clang-cl", "msvc"] |
"cosmic" | ["cosmic"] |
"dmc" | ["dmc"] |
"gcc" | ["gcc"] |
"iar" | ["iar"] |
"keil" | ["keil"] |
"llvm" | ["llvm", "gcc"] |
"mingw" | ["mingw", "gcc"] |
"msvc" | ["msvc"] |
"qcc" | ["qcc"] |
"sdcc" | ["sdcc"] |
"watcom" | ["watcom"] |
"xcode" | ["xcode", "clang", "llvm", "gcc"] |
默认值:未定义
[自Qbs 1.11起]toolchainType : string |
此构建将要使用的工具链。
例如,要使用"clang"
工具链构建项目,只需这样做
qbs build qbs.toolchainType:clang
通常应将此属性视为写入-only,并避免使用它来测试当前工具链。相反,请使用toolchain属性进行条件测试。
典型值包括:"gcc"
、"clang"
、"clang-cl"
、"mingw"
、"msvc"
和"xcode"
。另请参阅Relation between toolchainType and toolchain
。
默认情况下,qbs.toolchainType
将根据targetOS属性自动检测
目标操作系统 | 工具链 |
---|---|
"darwin" | "xcode" |
"freebsd" | "clang" |
"haiku" | "gcc" |
"qnx" | "qcc" |
"unix" | "gcc" |
"vxworks" | "gcc" |
"windows" | "msvc" |
默认值:自动检测
此属性是在Qbs 1.11中引入的。
[只读,自Qbs 1.4.1起]version : string |
作为字符串的Qbs版本号。例如:"1.4.1"
。
此属性是在Qbs 1.4.1中引入的。
[只读,自Qbs 1.4.1起]versionMajor : int |
Qbs的主版本号。
此属性是在Qbs 1.4.1中引入的。
[只读,自Qbs 1.4.1起]versionMinor : int |
Qbs的次要版本号。
此属性是在Qbs 1.4.1中引入的。
[只读,自Qbs 1.4.1起]versionPatch : int |
Qbs的修补程序版本号。
此属性是在Qbs 1.4.1中引入的。
版权所有©2023 The Qt Company Ltd. 本文档的贡献包括各自权利人的版权。提供的文档遵守由自由软件基金会发布的GNU自由文档许可版1.3的条款。Qt及其相关标识是芬兰以及世界其他国家的The Qt Company Ltd的商标。所有其他商标均为其各自权利人的财产。