【问题标题】:CPack Deb generator exclude files/targetsCPack Deb 生成器排除文件/目标
【发布时间】:2020-09-13 18:40:11
【问题描述】:

我正在尝试使用 CMake 构建一个包含共享库 (Lua) 的 C++ 项目,我遇到的问题是我只想在构建用于 Linux 的 Tar.gz 或适用于 Windows 的 NSIS 安装程序,在打包 deb 或 rpm 包时,该库应列为依赖项 (liblua5.3-0),但实际上并未打包。

是否有可能基于生成器在 CPack 中排除文件或构建目标?

【问题讨论】:

    标签: cmake packaging cpack software-packaging


    【解决方案1】:

    我认为答案是有条件地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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-21
      • 2020-08-26
      • 2011-11-17
      • 1970-01-01
      相关资源
      最近更新 更多