描述新配置系统所理解的所有内容都在configure.json
分散在 Qt 模块周围的文件中给出。该configure
工具使用这些文件来构建它理解的命令行参数列表。
在不使用其他工具的情况下,要了解 Qt 功能,您需要检查这些 json 文件并选择您希望打开或关闭的功能/选项。
子配置
这些充当包含,并引用给configure.json
定文件夹中的文件。例如qtbase/configure.json
包括qtbase/src/corelib/configure.json
等qtbase/src/network/configure.json
:
"subconfigs": [
"src/corelib",
"src/network",
[...]
],
显式命令行选项
该commandline/options
值列出了configure
给定 Qt 模块可以理解的选项。这些选项与特征系统是分开的,尽管它们可以用来方便地提供控制特征的速记别名。例如,在 中qtbase/configure.json
,我们有:
{ "commandline": { "options": { "accessibility": "boolean", [...] }
此命令行选项控制同名accessibility
功能。使用起来比处理特征系统的选项更方便[-no]-feature-accessibility
。以下对具有相同的效果:
-accessibility
或者-feature-accessibility
-no-accessibility
或者-no-feature-accessibility
价值观:
boolean
选项分别赋予configure
as-option
和-no-option
,含义true
和false
。
- 所有其他选项均以
-option value
.
功能选项
该features
值列出了给定模块中可用的功能。这些特征实际上是布尔值。它们都是默认启用的,但需要通过启用它们的配置测试。
要控制功能foo
:
-no-feature-foo
禁用该功能。例如,要禁用该iconv
功能,你会这样做configure -no-feature-iconv [...]
。
-feature-foo
启用该功能并确保它可用。如果功能的配置测试失败,这将导致错误。它在与您的应用程序一起构建特别配置的 Qt 的构建系统中很有用:它确保您的代码所依赖的功能可用。
失败的构建
一般来说,无论您提供哪种功能选择组合,如果configure
没有失败,则构建应该成功。
尽管配置不正确,我们都希望避免将时间浪费在将开始构建的构建上
该configure
工具将检测任何无效配置。如果configure
成功但构建失败,这是一个 Qt 错误,您应该报告它。