使用自定义 cmake 版本变量测试包版本集

Posted

技术标签:

【中文标题】使用自定义 cmake 版本变量测试包版本集【英文标题】:testing for a package version set using custom cmake version variable 【发布时间】:2021-09-25 05:15:24 【问题描述】:

我在我的项目中使用 CMake 链接到 FLTK,并希望确保如果其他人尝试在他们的机器上这样做,他们拥有最新版本 (1.3.7)。

在 CMake 中执行此操作的正常方式是

find_package(FLTK 1.3.7 REQUIRED)

但是,这需要在相关的FLTKConfig.cmake 文件中设置诸如PACKAGE_FIND_VERSION_MAJOR 等变量。可惜这个包里没有设置这些,但是设置的是set (FLTK_VERSION 1.3.7)

如何在我的CMakeLists.txt 文件中测试此变量(可能设置为 1.3.6 或 1.4.0 或其他)是否大于或等于 1.3.7?

【问题讨论】:

【参考方案1】:

if 命令supports VERSION keyword 执行版本号比较:

if($FLTK_VERSION VERSION_GREATER_EQUAL 1.3.7)

【讨论】:

太好了,谢谢。在您的回答中使用 VERSION_GREATER_EQUAL 给了我所需的行为。

以上是关于使用自定义 cmake 版本变量测试包版本集的主要内容,如果未能解决你的问题,请参考以下文章

Spark 数据集自定义分区器

小技巧 | 自动生成版本号及编译时间

CMake--变量

ant+jmeter 实现自定义测试报告并发送邮件

cmake var

自定义npm包——typeScript版本