空的默认组件名称显示为“未指定”
Posted
技术标签:
【中文标题】空的默认组件名称显示为“未指定”【英文标题】:empty default component name is displayed as 'Unspecified' 【发布时间】:2015-04-20 07:42:09 【问题描述】:我正在尝试使用 cmake 2.8.12 制作两个包:第一个包含共享库,第二个包含头文件。显然,我想要两个名称分别为libname
和libname-dev
的包,所以我使用了命令install
,没有为共享库指定组件,而与COMPONENT dev
相同的命令用于头文件。在此之前,我定义了一个空的默认组件名称。所以我有一个代码如下:
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "")
install(TARGETS libname DESTINATION /usr/local/lib)
install(FILES $header_files DESTINATION /usr/local/include COMPONENT dev)
但是结果,尽管生成了空的默认组件名称libname-Unspecified
和libname-dev
。我觉得这种行为很奇怪,因为我似乎无法用之前描述的名称定义两个包。有什么想法可以通过其他方式做到这一点吗?
【问题讨论】:
您是否为 libname 生成了目标?请发布更多您的 CMakeLists.txt 文件 @Antonio,当然。此外,如果我在 CMAKE_INSTALL_DEFAULT_COMPONENT_NAME 中设置任何“blah-blah”而不是空名称,它会按预期工作。无论如何,这里有一点简化的 CMakeLists.txt:http://pastebin.com/rvz7dqJm 【参考方案1】:在 debian 的情况下:
给你的主要组件一些临时名称,例如“运行时”。
install(TARGETS my-target
COMPONENT runtime
DESTINATION $INSTALLDIR
)
然后去掉后缀的组件名如下:
set(CPACK_DEBIAN_RUNTIME_PACKAGE_NAME "$CPACK_PACKAGE_NAME")
如果它们提供与“CPACK_DEBIAN_RUNTIME_PACKAGE_NAME”等效的内容,也可以与其他生成器一起使用。
【讨论】:
以上是关于空的默认组件名称显示为“未指定”的主要内容,如果未能解决你的问题,请参考以下文章