CPack Deb 生成器排除 files/targets
CPack Deb generator exclude files/targets
我正在尝试使用 CMake 构建一个包含共享库 (Lua) 的 C++ 项目,我遇到的问题是我只想使用 Lua 发送包在为 Linux 构建 Tar.gz 或为 Windows 构建 NSIS 安装程序时,在打包 deb 或 rpm 包时,库应列为依赖项 (liblua5.3-0) 但实际上不是打包。
是否有可能基于生成器在 CPack 中排除文件或构建目标?
我认为答案是install
有条件
我可能会为此设置一个选项,该选项设置在我的顶级 cmake 文件的顶部,然后在我遇到的任何 install
命令中使用它。
option(INSTALL_3RD_PARTY "Installs third party content" OFF)
if(INSTALL_3RD_PARTY)
install(FILES liblua5.3-0 DESTINATION ${CMAKE_INSTALL_PREFIX})
endif()
如果您不喜欢让用户设置太多选项,您可以从 ${CPACK_GENERATOR}
派生它吗(如果这是用户定义的)。在我的项目中,我倾向于在我的 install
命令之后设置 CPACK_GENERATOR
,所以这对我来说效果不佳。
if (${CPACK_GENERATOR} EQUAL "DEB")
set(INSTALL_3RD_PARTY OFF)
endif()
if (${CPACK_GENERATOR} EQUAL "TZ")
set(INSTALL_3RD_PARTY ON)
endif()
我正在尝试使用 CMake 构建一个包含共享库 (Lua) 的 C++ 项目,我遇到的问题是我只想使用 Lua 发送包在为 Linux 构建 Tar.gz 或为 Windows 构建 NSIS 安装程序时,在打包 deb 或 rpm 包时,库应列为依赖项 (liblua5.3-0) 但实际上不是打包。
是否有可能基于生成器在 CPack 中排除文件或构建目标?
我认为答案是install
有条件
我可能会为此设置一个选项,该选项设置在我的顶级 cmake 文件的顶部,然后在我遇到的任何 install
命令中使用它。
option(INSTALL_3RD_PARTY "Installs third party content" OFF)
if(INSTALL_3RD_PARTY)
install(FILES liblua5.3-0 DESTINATION ${CMAKE_INSTALL_PREFIX})
endif()
如果您不喜欢让用户设置太多选项,您可以从 ${CPACK_GENERATOR}
派生它吗(如果这是用户定义的)。在我的项目中,我倾向于在我的 install
命令之后设置 CPACK_GENERATOR
,所以这对我来说效果不佳。
if (${CPACK_GENERATOR} EQUAL "DEB")
set(INSTALL_3RD_PARTY OFF)
endif()
if (${CPACK_GENERATOR} EQUAL "TZ")
set(INSTALL_3RD_PARTY ON)
endif()