【发布时间】:2012-12-20 15:25:00
【问题描述】:
我使用 CMake 管理具有以下布局的项目:
ProjectA/
include
doc
test
ProjectB
include
doc
test
我想使用 CPack 打包一个 tar.gz source 存档,其布局如下:
include/
ProjectA/
doc
test
ProjectB/
doc
test
新的顶级包含包含所有包含文件。
我尝试通过CPACK_INSTALL_SCRIPT 运行 CMake 脚本来实现此目的,但此脚本在文件创建之前运行。我在哪里可以连接到 CPack 以获得这种效果?
似乎install 对make
package_source 的作用没有影响,但它对make
package 有影响。不幸的是make package 也将构建和打包
图书馆,这是我不想发生的事情。我想要一个纯粹的
源代码分发ala make dist.
【问题讨论】:
-
有点不清楚是什么问题。就像 arrowdodger 所说:您应该添加一个带有 DESTINATION 的 install() 调用,CPack 应该选择它并正确合并文件夹。您是否尝试直接运行“CPack -G TGZ”,还是使用“make package”?如果您先指定 'projectA/include/*.h' 或 GLOB 源会发生什么?
-
@Andre 正如我所说:
package_source忽略了install的DESTINATION。package尊重它,但也尝试编译我不想要的库。我一直尝试cmake package和cmake package_source从来没有直接cpack。 -
如果你接受“包”编译你的库,它会给你正确的布局吗?
-
回答完,才注意到你是专门看源码包创建的。请更新您的问题以使其更清楚。
-
@JohannesS。我试着让它更清楚,并补充了为什么明显的方法会失败。
标签: cmake build-system cpack