CMake 有一个内置install目标,因此您可以make install在生成 Makefile 或INSTALL在 Visual Studio 中构建项目等时使用。
此目标的行为由install()CMake 文件中的各种命令定义,例如将现有 CMake 目标的文件或产品复制到特定安装目录。
该install()命令还允许您指定一个组件。如果您随后调用 CMake 指定一个组件,则install目标将仅安装与该特定组件关联的产品。
但是,我还没有发现:目标依赖于哪些目标install?
make install失败,即使该目标不产生任何安装内容?make install构建所有目标(但只安装一个组件)?还是只构建安装特定组件所需的目标?这取决于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,则不会创建此依赖项,因此安装过程将立即开始,与项目是否已完全构建无关。