如何指定我希望 CPack 打包到 RPM 中的文件?

How do I specify the files I want CPack to pack into an RPM?

我正在使用 CPack 的组件功能制作两个 rpm。我希望一个拥有 .so 文件,另一个拥有所有头文件。我在组件功能中找不到关于打包文件的任何类似问题。

(DEVEL" 是我开发 rpm 的组件)

现在我有 set(CPACK_RPM_DEVEL_INSTALL_FILES path/../file1

...

path/../file2) 只是我所有的文件都用 returns 分隔,但这根本不起作用。在 rpm 中提供我需要的文件列表的正确语句是什么?

目前它产生 3 个 rpms(我假设第三个将只是一个完整的,包含我生成但未使用的所有文件)。其中两个 rpm 包含回购中的每个文件,第三个 rpm 中只有两个 CMake 文件。

cpack_add_component(DEVEL)
//Skipping version, description, name, setting source_dir... set(CPACK_RPM_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_IGNORE_GROUPS 1)
set(CPACK_COMPONENTS_GROUPING ONE_PER_GROUP)
set(CPACK_COMPONENT_DEVEL_DISPLAY_NAME "devel")
set(CPACK_RPM_DEVEL_INSTALL_FILES "/usr/include/opentracing/noop.h
...
/usr/include/opentracing/version.h")
set(CPACK_COMPONENT_DIST_REQUIRED TRUE)
set(CPACK_COMPONENT_DEVEL_REQUIRED TRUE)
set(CPACK_COMPONENTS_ALL DIST DEVEL)

我在 linux 命令行中使用 cpack -G rpm

调用它

在您的 CMakelists.txt 中,添加如下内容:

install(TARGETS outputfiles... RUNTIME DESTINATION bin LIBRARY DESTINATION lib)

然后你可以使用

make package

在你的构建目录中。