file(GLOB SRC "../utils/kt_someip/log/*.cpp" "endpoint/*.cpp" "mainControl/*.cpp" "message/*.cpp" "message/sdMessage/*.cpp" "resourcesMgr/*.cpp" "serviceInstance/*.cpp" "serviceInstance/serviceDiscovery/*.cpp" "serviceInstance/someip/*.cpp" "utils/*.cpp" "utils/e2e/*.cpp" "utils/config/*.cpp" "utils/workerPool/*.cpp" "main.cpp" )
时间: 2023-11-21 08:55:53 浏览: 69
这是一个 CMake 的代码片段,用于使用通配符匹配源文件列表。file() 命令用于操作文件系统,括号内列出的是文件操作命令及其参数,本代码片段使用 file(GLOB ...) 子命令来指定要匹配的文件路径和通配符,以获取源文件列表。
在这个代码片段中,它会使用通配符匹配获取多个目录下的所有 .cpp 文件作为源文件列表,这些目录包括:
- "../utils/kt_someip/log/"
- "endpoint/"
- "mainControl/"
- "message/"
- "message/sdMessage/"
- "resourcesMgr/"
- "serviceInstance/"
- "serviceInstance/serviceDiscovery/"
- "serviceInstance/someip/"
- "utils/"
- "utils/e2e/"
- "utils/config/"
- "utils/workerPool/"
这些目录中的所有 .cpp 文件都会被添加到 SRC 变量中,以便在后续的 add_executable() 命令中使用。这种方式适用于自动处理大量源文件,不需要手动一个个列出每个源文件的名称,但有时可能会导致不必要的文件被包含在内。
相关问题
import.meta.glob('../src/utils/**/*.run.ts' 匹配方式还有哪些
除了使用 import.meta.glob('../src/utils/**/*.run.ts' 之外,还可以使用其他的匹配方式,比如:
1. 使用 path.resolve() 方法获取绝对路径,并在其中使用 glob.sync() 方法进行匹配。例如:
```
const path = require('path');
const glob = require('glob');
const files = glob.sync(path.resolve(__dirname, '../src/utils/**/*.run.ts'));
```
2. 使用 Node.js 的 fs 模块中的 readdir() 方法获取目录下所有文件的文件名,然后再使用 glob 匹配需要的文件。例如:
```
const fs = require('fs');
const glob = require('glob');
fs.readdir('../src/utils', (err, files) => {
const filesToMatch = files.filter((file) => file.endsWith('.run.ts'));
const matchedFiles = glob.sync(`../src/utils/{${filesToMatch.join(',')}}`);
});
```
3. 使用 webpack 中的 require.context() 方法进行匹配。例如:
```
const files = require.context('../src/utils', true, /\.run\.ts$/);
```
filelocation=glob.glob(r'./aa/*.xlsx')
这段代码使用了`glob`模块的`glob`函数来匹配指定路径下的所有符合特定模式的文件,并将匹配到的文件路径保存在一个列表中。
具体而言,`glob.glob(r'./aa/*.xlsx')`表示在当前目录下的`aa`文件夹中匹配所有以`.xlsx`为后缀的文件。
- `glob.glob(pattern)`:该函数接受一个字符串参数`pattern`,用于指定文件路径的模式。在这个模式中,可以使用通配符`*`来匹配任意字符序列,`?`来匹配单个字符。
例如,假设当前目录下的`aa`文件夹中有以下文件:
```
file1.xlsx
file2.xlsx
file3.csv
```
运行`filelocation = glob.glob(r'./aa/*.xlsx')`后,会得到一个列表`filelocation`,其中包含了两个匹配到的`.xlsx`文件的路径:
```
['./aa/file1.xlsx', './aa/file2.xlsx']
```
这样,你就可以通过遍历`filelocation`列表来处理或操作这些匹配到的文件。