分组

将产品中的文件分组。 更多...

属性

详细描述

该元素附加到产品上,用于将具有共同特征的文件分组。

例如

Application {
    Group {
        name: "common files"
        files: ["myclass.h", "myclass_common_impl.cpp"]
    }
    Group {
        name: "Windows files"
        condition: qbs.targetOS.includes("windows")
        files: "myclass_win_impl.cpp"
    }
    Group {
        name: "Unix files"
        condition: qbs.targetOS.includes("unix")
        files: "unixhelper.cpp"
        Group {
            name: "Linux files"
            condition: qbs.targetOS.includes("linux")
            files: "myclass_linux_impl.cpp"
        }
        Group {
            name: "FreeBSD files"
            condition: qbs.targetOS.includes("freebsd")
            files: "myclass_freebsd_impl.cpp"
        }
    }
    Group {
        name: "Files to install"
        qbs.install: true
        qbs.installDir: "share"
        files: "runtime_resource.txt"
    }
}

在指定文件时,可以使用通配符 "*""?""[]",它们具有与 Unix Shell 中相同的意义。默认情况下,只从父目录中直接选择匹配的文件,但您可以告诉 Qbs考虑整个目录树。还可以从列表中排除某些文件。在路径名展开上下文中使用的模式 "**"将匹配所有文件和零个或多个目录以及子目录。例如

        Group {
            name: "Word processing documents"
            files: ["*.doc", "*.rtf"]
            prefix: "**/"
            qbs.install: true
            qbs.installDir: "share"
            excludeFiles: "do_not_install_this_file.*"
        }

组也可以用于将属性附加到构建工件,如可执行文件或库。在以下示例中,应用软件安装到 "<install root>/bin"。

Application {
    Group {
        fileTagsFilter: "application"
        qbs.install: true
        qbs.installDir: "bin"
    }
}

组也可能出现在模块中,这将导致根据该模块将相应的源添加到产品中,除非设置了filesAreTargets属性。

组可以是嵌套的。在这种情况下,子组将继承其父组的模块属性和文件标签以及其父组的前缀。子组的condition与父组的进行逻辑与操作。

属性文档

condition : bool

确定组中的文件是否实际上是项目的组成部分。

默认:true


excludeFiles : pathList

files列表中减去的文件列表。

值可以包含通配符。

如果设置了fileTagsFilter,则忽略该属性。

默认:空列表


fileTags : stringList

要将组文件附加到的文件标签列表。然后可以通过规则进行匹配。

注意:文件标记器永远不会应用于设置了此属性的手动文件。

默认:空列表


fileTagsFilter : 字符串列表

匹配artifact.fileTags的列表。在此组中设置的任何属性都将应用于文件标记与这里列出的相匹配产品的工作件。

将添加到匹配中的工作件的是组内fileTags属性指定的文件标记。

此属性与files互斥。

默认:空列表


files : 路径列表

组中的文件。与fileTagsFilter互斥。使用包含组项目的文件的父目录来解析相对路径。但是,如果prefix属性设置为绝对路径,则该路径成为基本目录。

值可以包含通配符。

默认:空列表


filesAreTargets : 布尔值

如果此属性为true且组位于模块中,则组中的文件不会成为依赖于该模块的产品源工作件。相反,它们将被处理为目标工作件,即它们将与依赖于模块的产品中的inputsFromDependencies文件标记列表匹配。

默认:false


name : 字符串

组的名称。在内部不使用;主要用于IDE。

默认:"组 x",其中 x 是产品中所有组之间的唯一编号。


overrideTags : 布尔值

确定如何处理同时在产品(或如果存在,则父组)的顶层和组中列出的文件上的标记。如果此属性为true,则通过组设置的文件标记将替换通过产品或父组设置的标记。如果它是false,则组标记添加到父标记中。

如果设置了fileTagsFilter,则忽略该属性。

默认:true


prefix : 字符串

要添加到所有文件的开头的字符串。允许使用斜杠,并具有目录含义。

默认:如果存在,则为父组的名称,否则为空。


©版权所有 2023 The Qt Company Ltd。本文件中包含的文档贡献是各自所有者的版权。本处提供的文档是根据自由软件基金会发布的GNU自由文档许可证第1.3版的条款提供的。Qt和相应标识是芬兰或其他国家/地区的Qt公司注册商标。所有其他商标均为其各自所有者的财产。