CMake有一个内置的install
目标,因此如果您正在生成Makefile,或者在Visual Studio中构建make install
项目,则可以使用INSTALL
。
此目标的行为由CMake文件中的各种install()
命令定义,例如:将现有CMake目标的文件或产品复制到特定的安装目录。
install()
命令还允许您to specify a component。如果您随后致电CMake指定组件,则install
目标将仅安装与该特定组件关联的 产品。
但我找不到的是: install
目标取决于哪些目标?
make install
失败,即使该目标没有为安装生成任何内容?make install
将在我的源代码树中构建所有目标(但只安装一个组件)?或者它是否只构建安装特定组件所需的目标?答案 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
阶段。