如何为目标、其文件名和导出名称提供单独的名称?
我有一些目标 - 比如说它是一个库 - 在我正在处理的存储库的 CMakeLists.txt
文件中。我希望将以下三个分开:
- 我在
CMakeLists.txt
中使用的目标名称;说它需要是foo
。 - 导出的目标名称,其他人在导入我安装的存储库后将使用该名称:前缀是
mypackage
,我希望目标名称是bar
,所以在一起就会被导入器用作mypackage::bar
。 - 库文件基名;我希望它是
libbaz
,而不是libfoo
或libbar
。
我怎样才能实现这个目标?
我也许能够使用 add_library()
命令的 ALIAS
修饰符实现这三个中的两个,但我想要全部三个。
I have some target - say it's a library - in a CMakeLists.txt
file of a repository I'm working on. I want to the following three to be separate:
- The target name I use in
CMakeLists.txt
; say it needs to befoo
. - The exported target name, which others will use after importing my installed repository: The prefix is
mypackage
, and I want the target name to be, saybar
, so together it will be used asmypackage::bar
by the importer. - The library file basename; I want it to be
libbaz
, notlibfoo
norlibbar
.
How can I achieve this?
I may be able to achieve two of these three using the ALIAS
modifier of the add_library()
command, but I want all three.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
有一些目标属性可以控制这一点:
OUTPUT_NAME
和EXPORT_NAME
。以下是我将如何实现您的场景:请参阅文档:
There are target properties that control this:
OUTPUT_NAME
andEXPORT_NAME
. Here's how I would implement your scenario:See the docs: