我有几个第三方库,有些是共享的,有些是静态的,我需要安装共享库(进入RPM进一步重新分配)。
目前我正在查找find_library,列出了所有需要的库并将其传递给install(FILES ...)
。
但是这样安装了.a
和.so
个库。
使用install(TARGETS ...)
RUNTIME
,ARCHIVE
等分隔。
但我不想为每个lib创建一个虚拟目标。
我也不想将lib分成共享和静态(已经有另一种分离)。
我是否有更好的方法来过滤共享库而不仅仅是正则表达文件名?也许图书馆被视为“更多”的东西。而不仅仅是find_library
之后的文件路径,所以我可以从中获取库类型?
答案 0 :(得分:0)
让我们看看发生了什么。
如果是这样,你不应该要求cmake安装这些库,因为如果其他人想通过另一个rpm包安装相同的第三方库,则会产生冲突(并且必须删除一个包) - 它&#39一团糟。
管理库依赖的地方是包管理器 - 创建rpm包,其中包含:
Requires: all_your_dynamic_libs
BuildRequires: all_your_static_libs
如果第1点相反 - 您可以通过make&&amp ;;安装一些库。 make install然后你应该首先为它创建rpm包。
创建所有这些额外的工作是一种痛苦,但相信我,你不想创建一体化的包。