内置的 INSTALL 目标有哪些依赖项?

Ziv*_*Ziv 4 cmake

CMake 有一个内置install目标,因此您可以make install在生成 Makefile 或INSTALL在 Visual Studio 中构建项目等时使用。

此目标的行为由install()CMake 文件中的各种命令定义,例如将现有 CMake 目标的文件或产品复制到特定安装目录。

install()命令还允许您指定一个组件。如果您随后调用 CMake 指定一个组件,则install目标将安装与该特定组件关联的产品。

但是,我还没有发现:目标依赖于哪些目标install

  • 如果我的一个目标没有编译,这是否会导致make install失败,即使该目标不产生任何安装内容?
  • 如果我正在构建一个特定组件,并且我已经在原始 CMake 调用中指定了它,是否会在我的源代码树中make install构建所有目标(但只安装一个组件)?还是只构建安装特定组件所需的目标?

pue*_*tzk 5

这取决于all.

您可以使用 控制其中的内容EXCLUDE_FROM_ALL,或通过设置删除依赖项CMAKE_SKIP_INSTALL_ALL_DEPENDENCY,但这并不会将其替换为特定目标,这仅意味着 make install 会在不尝试构建任何内容的情况下进行安装。

这是来自的文档 CMAKE_SKIP_INSTALL_ALL_DEPENDENCY

默认情况下,install目标取决于all目标。这具有的效果是,当make install被调用或INSTALL构建时,首先all构建目标,然后开始安装。如果CMAKE_SKIP_INSTALL_ALL_DEPENDENCY设置为TRUE,则不会创建此依赖项,因此安装过程将立即开始,与项目是否已完全构建无关。