cmake 复制文件夹 排除子文件夹
时间: 2023-08-10 18:06:16 浏览: 49
您可以使用 `file(COPY ...)` 命令来复制文件夹,同时使用 `EXCLUDE` 参数来排除子文件夹。比如:
```
file(COPY ${source_dir}/my_folder
DESTINATION ${destination_dir}
FILES_MATCHING
PATTERN "*"
EXCLUDE
PATTERN "my_folder/sub_folder/*"
)
```
其中:
- `${source_dir}/my_folder` 表示源文件夹路径;
- `${destination_dir}` 表示目标文件夹路径;
- `FILES_MATCHING` 表示只复制符合规则的文件;
- `PATTERN "*" EXCLUDE PATTERN "my_folder/sub_folder/*"` 表示排除 `my_folder` 文件夹下的 `sub_folder` 子文件夹。
这样,就可以实现复制文件夹并排除子文件夹的功能。
相关问题
cmake 复制文件夹
要在 CMake 中复制文件夹,可以使用 `file(COPY ...)` 命令。具体地,可以按照以下方式编写 CMakeLists.txt 文件:
```
cmake_minimum_required(VERSION 3.0)
project(MyProject)
# 复制文件夹
file(COPY folder1 DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
```
其中,`folder1` 是要复制的文件夹名称,`${CMAKE_CURRENT_BINARY_DIR}` 是 CMake 的内置变量,代表 build 目录的路径。这样,在执行 `cmake` 命令后,就会在 build 目录下复制一个 `folder1` 文件夹。
cmake install 排除子文件夹
如果你想使用 CMake 安装项目时排除某些子目录,你可以在 CMakeLists.txt 文件中使用以下命令:
```
install(DIRECTORY ${PROJECT_SOURCE_DIR}/
DESTINATION ${CMAKE_INSTALL_PREFIX}
PATTERN "subdirectory_to_exclude" EXCLUDE
)
```
其中 `subdirectory_to_exclude` 是你想要排除的子目录的名称。这将确保在安装过程中不会将指定的子目录复制到目标安装目录中。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)