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

时间:2016-07-14 10:03:56

标签: cmake

CMake有一个内置的install目标,因此如果您正在生成Makefile,或者在Visual Studio中构建make install项目,则可以使用INSTALL

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

install()命令还允许您to specify a component。如果您随后致电CMake指定组件,则install目标将仅安装与该特定组件关联的 产品。

但我找不到的是: install目标取决于哪些目标?

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

2 个答案:

答案 0 :(得分:2)

取决于struct

您可以使用all控制此处的内容,或者通过设置EXCLUDE_FROM_ALL来删除相关性,但这不会将其替换为特定目标,这只是意味着make install会安装而不会尝试建造任何东西。

以下是CMAKE_SKIP_INSTALL_ALL_DEPENDENCY

的文档
  

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

答案 1 :(得分:0)

make install 无条件取决于make all

也就是说,对于安装甚至单个文件,您需要(成功)完成make all阶段。