gpt4 book ai didi

cmake - CPack:如何为组件指定不同的包版本?

转载 作者:行者123 更新时间:2023-12-04 16:05:34 25 4
gpt4 key购买 nike

我有一个 CMake 项目来构建多个共享库和工具,其中大部分位于子目录下:

add_directory(libFirst)
add_directory(libSecond)
add_directory(myTool)
# etc...
install(TARGET "someTarget" COMPONENT "someTarget" ...)规则在各自的 subdirectory/CMakeLists.txt 中文件。

我想使用 make package 为所有这些生成 Debian 软件包。来自构建目录的命令。我有 CPACK_DEB_COMPONENT_INSTALL设置为 ON .

我面临的问题是,并非所有目标都具有相同的 VERSION和/或 SOVERSION .例如, libFirst版本为 1.0.0.0 和 libSecond是版本 4.3.0.0。这意味着生成的包也应该有不同的版本,但我发现指定版本的唯一方法是指定 CPACK_PACKAGE_VERSION_MAJOR , CPACK_PACKAGE_VERSION_MINORCPACK_PACKAGE_VERSION_PATCH变量(可能还有内部 CPACK_PACKAGE_VERSION 变量),它设置了 的版本全部 生成的包。

有没有办法为每个组件设置包版本,例如通过设置一些与其他变量类似的变量 CPACK_COMPONENT_<COMPONENT>_*CPACK_DEBIAN_<COMPONENT>_*变量?

最佳答案

我认为目前这是不可能的,但我创建了一个提供此功能的合并请求( https://gitlab.kitware.com/cmake/cmake/merge_requests/2305 )。

我希望它会获得批准,但同时您可以在本地更改您的 CPackDeb.cmake,如下差异所示:https://gitlab.kitware.com/cmake/cmake/merge_requests/2305/diffs .该文件的默认位置在/usr/share/cmake/Modules/CPackDeb.cmake 中。

关于cmake - CPack:如何为组件指定不同的包版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44951598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com