【问题标题】:CPACK embed text filesCPACK 嵌入文本文件
【发布时间】:2014-02-04 02:06:42
【问题描述】:

我想分发一个包含程序二进制文件的 gzip 压缩包。 制作包含二进制文件和其他脚本/man 文件的包没有问题,因为这些是我在源代码安装期间使用 CMake INSTALL 命令安装的文件。

虽然对这种功能的需求对我来说似乎很明显,但我没有找到将文本文件包含在 CPack tarball 包中的方法。 这是我想要获得的最终 tarball 的示例:

myprogram-1.0.0rc-Darwin-i386/
├── LICENSE <- not installed by CMake
├── INSTALL <- not installed by CMake
├── README  <- not installed by CMake
├── bin
│   └── myprogram
└── share
    └── myprogram
        └── man
            └── man1
                └── myprogram.1

非常感谢任何帮助。

干杯

【问题讨论】:

  • 为什么不为这些文件添加额外的安装命令?

标签: macros installation cmake customization cpack


【解决方案1】:

您也可以将installFILESDIRECTORY 选项一起使用。

install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.txt DESTINATION .)

【讨论】:

  • 感谢您的回答。不幸的是,它不会这样做,因为即使在进行 make install 时也会安装 README 文件。
  • 到底有什么办法只有调用“make package”才能使用这个命令呢?
  • install 命令仅在调用make packagecpack 时被调用(这是我推荐的方式,因为对于某些生成器,没有生成文件但仍然是一个打包步骤)。 我没有注意到您提到的make install 步骤……也许您可以添加一个额外的选项“包装”,并且仅在您想要有效包装时将其设置为ON?在我看来,make installcpack/make package 不应该同时被调用。
  • 对于“PACKAGING”布尔值,这是我想出的解决方法,但它不是很令人满意,因为您仍然可以在 PACKAGING 关闭时调用 make package 并生成错误的包。此外,我不确定我是否理解你,但make installmake package 不会同时被调用(如果你是这个意思,我不会调用make install package)。但是我希望 CMake 在我做一个包时包含自述文件,而不是在我安装它时(可以间隔几周完成的操作)。
猜你喜欢
  • 1970-01-01
  • 2013-10-19
  • 2013-08-09
  • 1970-01-01
  • 2021-12-07
  • 2012-06-26
  • 2013-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多