`find_package`还有哪些关键参数可以配合`PATHS`一起使用?
时间: 2024-12-15 17:17:49 浏览: 4
`find_package`除了`PATHS`之外,还有一些其他重要的参数,它们可以配合使用,以便更精确地控制库的查找过程:
1. **MODULE**: 这个参数告诉CMake寻找的是模块(.cmake文件),而不是直接的库文件。模块通常是CMake打包的一个配置脚本,它定义了库的依赖和其他信息。例如:
```cmake
find_package(MyLibrary REQUIRED MODULE)
```
2. **VERSION**: 可以设置特定的版本要求,如`MINIMUM_REQUIRED_VERSION`(最小版本)、`EXACT_VERSION`(精确版本)或`QUIET`(安静模式,不显示查找过程的输出)。例如:
```cmake
find_package(MyLibrary 1.2.3 REQUIRED)
```
3. **NO_CMAKE_MODULE_PATH**: 当前目录下禁止搜索CMake模块,仅限于`PATHS`指定的路径。这常用于排除干扰,专注于某个特定的搜索范围。
4. **NO_SYSTEM_PACKAGE_PATH**: 禁止系统级包路径,仅查找用户自定义的路径。这对于避免依赖系统包而寻找自定义构建的库很有帮助。
5. **NO_POLICY_SCOPE**: 防止`find_package`影响全局的政策查找。如果你只想在一个特定的范围查找,可以使用这个选项。
6. **COMPONENT**: 对于分层库(如Boost库),指定需要查找的具体组件。例如:
```cmake
find_package(Boost COMPONENT filesystem REQUIRED)
```
7. **QUIET** 和 **VERBOSE**: 控制输出信息的详细程度,`QUIET`表示静默查找过程,`VERBOSE`则显示更多详细信息。
结合这些参数,你可以更好地定制 `find_package` 的查找策略。
阅读全文