2

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

if(COMMAND cmake_policy)
  cmake_policy(SET CMP0003 NEW)
endif()

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

4

1 回答 1

5

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

if(COMMAND 命令名)

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

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

于 2013-05-08T08:22:09.670 回答