CMake 策略(Mastering CMake 笔记)

本文详细介绍了CMake中的策略机制,包括设置策略、策略栈的运作以及如何将项目升级到新版本CMake的过程。通过设置策略版本和使用cmake_policy命令,开发者可以选择新旧行为,确保在不同版本间的兼容性。一次性升级和增量式修改是两种常见的项目版本升级策略,前者可能需要解决更多编译问题,后者则允许项目在升级过程中保持持续编译。
摘要由CSDN通过智能技术生成

CMake 在添加新特性后可能不会完全兼容旧的 CMake 版本,这导致了在新版本的 CMake 中使用旧的 CMakeLists 文件时可能会存在一些问题。策略的引入就是帮助用户和开发者解决这些问题,它是 CMake 中用来改善向后兼容性和追踪兼容性的一种机制。 CMake 中的所有策略都被赋予一个 CMPNNNN 格式的识别符,其中 NNNN 是一个整数值。策略通常既保留了用于保持旧版本兼容性的旧行为,又包含了让用户在新项目中优先使用的正确的新行为。每个策略相关的文档都会描述旧行为和新行为,以及引入该策略的原因。

1 设置策略

工程可以设置各种策略来选择新的或旧的行为。当 CMake 遇到会被特殊策略影响的用户代码时,它会检查工程是否设置了策略。如果没有设置策略,工程会使用旧行为,并会给出警告要求项目作者设置工程的策略。
  有许多方法设置一个策略的行为,最快速的方式是设置所有的策略版本与编写项目的 CMake 版本一致,设置策略的版本会获取所有指定的版本或更早的版本中引入的策略。所有指定的版本之后引入的策略会标记为未设置,这是为了输出这些新策略合适的警告信息。设置策略版本的命令为:

cmake_policy (VERSION major.minor[.patch[.tweak]])

同时,cmake_minimum_required 命令也会设置策略的版本,该命令用在 CMakeLists 文件的最顶端。一个 CMakeLists 文件开始的几行通常为如下所示:

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值