路径探测器

位于项目外部的文件。 更多信息...

属性

详细描述

从指定位置查找具有指定文件名后缀的文件,例如 .exe

路径探测器接受搜索文件路径和文件名模式的列表作为输入。路径由 environmentPathssearchPathsplatformEnvironmentPathsplatformSearchPaths 属性指定;路径按列表顺序搜索。文件名模式由 namesnameSuffixes 属性指定。返回第一个匹配文件名模式的文件。如果没有找到此类文件,则将 probe.found 属性设置为 false

例如,可以使用以下方式使用简单的路径探测器搜索 stdio.h 头文件

Product {
    Depends { name: "cpp" }
    PathProbe {
        id: probe
        pathSuffixes: ["include"]
        names: ["stdio.h"]
    }
    cpp.includePaths: probe.found ? [probe.path] : []
}

属性文档

allResults : varList

此属性包含对象列表,每个对象代表一个找到的文件

{
    found: true,
    candidatePaths: ["path1/to/file", "path2/to/file", ...]
    filePath: "path/to/file"
    fileName: "file"
    path: "path/to"
}

另请参阅filePathfileNamepath


candidateFilter : var

此属性持有一个函数,可以用来过滤掉不合格的候选人。例如,在搜索库时,可能需要检查其体系结构

PathProbe {
    pathSuffixes: [".so", ".dll", ".dylib"]
    candidateFilter: {
        function getLibraryArchitecture(file) { ... }
        return function(file) {
            return Utilities.isSharedLibrary(file)
                    && getLibraryArchitecture(file) == qbs.architecture;
        }
    }
}

candidatePaths : stringList

本属性包含在找到文件之前检查的所有路径的结果列表(包括文件名)。

即使探测没有找到任何东西,也会设置此属性,并提供有关出错提示的用户。

Module {
    Probes.BinaryProbe {
        id: pythonProbe
        names: "python"
    }
    validate: {
        if (!pythonProbe.found) {
            throw ModUtils.ModuleError(
                    "Could not find python binary at any of the following locations:\n\t" +
                    pythonProbe.candidatePaths.join("\n\t"));
        }
    }
}

默认值:未定义


environmentPaths : stringList

包含文件的搜索路径的环境变量的列表。环境变量中的路径应使用FileInfo.pathListSeparator()进行分隔。

默认值:未定义


fileName : string

包含找到的文件名(不包括路径)。

默认值:未定义


filePath : string

包含找到的文件的完整路径,包括文件名。

默认值:未定义


nameFilter : script

在预先添加文件后缀之前,对于每个文件名执行该脚本。可用于转换文件名。


nameSuffixes : stringList

要搜索的文件后缀的列表。这些后缀将附加到通过names属性传递的每个文件名上。

默认值:未定义


names : stringList

要搜索的文件名列表。

默认值:未定义


path : string

包含找到的文件所在完整路径(即文件目录)。

默认值:未定义


pathSuffixes : stringList

要附加到PathProbe搜索文件路径的相对路径列表。也就是说,文件应位于使用此属性传递的子文件夹之一中。

默认值:未定义


platformEnvironmentPaths : stringList

包含要搜索文件路径的平台环境变量的列表。环境变量中的路径应使用FileInfo.pathListSeparator()进行分隔。

默认值:未定义


platformSearchPaths : pathList

要搜索文件的平台路径列表。

默认值:在Unix主机上['/usr', '/usr/local'],否则为空


searchPaths : pathList

要搜索文件的路径列表。

默认值:未定义


selectors : varList

应使用此属性来搜索多个文件。它包含一个选择器的列表,每个选择器都描述要搜索的单个文件。选择器可以是字符串、字符串列表或字典。

以下示例搜索三个文件,并说明了指定选择器的不同方法

selectors: [
    // 1st file with a single name
    "header.h",
    // 2nd file with possible name variants
    ["config.h", "foo-config.h", "bar-config.h"],
    // 3rd file with possible name and suffix variants
    {names: ["footk", "footk-version"], nameSuffixes: [".h", ".hpp"]}
]

©2023 The Qt Company Ltd. 保留文档所包含的贡献的所有版权。本提供的文档根据Free Software Foundation发布的GNU自由文档许可协议版本1.3许可。Qt及其相关标志是芬兰的The Qt Company Ltd及/或世界其他国家的商标。所有其他商标均为其各自主人的财产。