You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在自定义Find.cmake脚本中获取find_package()的version参数?

能否在自定义Find.cmake脚本中获取find_package()的version参数?

当然可以。CMake会自动为自定义Find脚本设置一系列相关变量,用来存储find_package()调用时传入的version参数信息。

假设你编写的是FindFoo.cmake,当用户通过以下方式调用:

find_package(Foo 1.3.5 REQUIRED)

在你的FindFoo.cmake脚本中,可以通过以下变量获取版本信息:

  • Foo_FIND_VERSION:完整的版本号,示例中为1.3.5
  • Foo_FIND_VERSION_MAJOR:主版本号,示例中为1
  • Foo_FIND_VERSION_MINOR:次版本号,示例中为3
  • Foo_FIND_VERSION_PATCH:补丁版本号,示例中为5
  • Foo_FIND_VERSION_TWEAK:如果版本号包含tweak部分(如1.3.5.2),则对应此变量的值

这些变量是CMake自动注入的,无需额外配置。你可以在脚本中根据这些版本值适配不同版本的库查找逻辑,比如匹配对应版本的头文件、库文件路径,或者验证找到的库版本是否符合要求。

如果调用find_package()时没有指定version参数,这些变量会被设为0或者空值,你可以在脚本中添加判断逻辑处理这种情况。

内容的提问来源于stack exchange,提问作者Nickolay Olshevsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 15:53:06