命令cmake_policy [cmake]的含义?

fee*_*ree 2 cmake

我现在正在阅读一个cmake脚本,我对以下代码感到困惑:

if(COMMAND cmake_policy)
  cmake_policy(SET CMP0003 NEW)
endif()
Run Code Online (Sandbox Code Playgroud)

我理解CMPOOO3的含义,因为这里有一部好的纪录片.但是,我无法理解第一行if(COMMAND cmake_policy),这是什么意思?谢谢.

Lin*_*cer 5

该构造if (COMMAND...)可用于检查函数或宏是否存在.从手册:

if(COMMAND命令名)

如果给定名称是可以调用的命令,宏或函数,则为True.

通常,这用于确保CMake脚本与较旧版本的CMake兼容,其中可能未定义该函数.