Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我现在正在阅读一个 cmake 脚本,我对以下代码感到困惑:
if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif()
我理解 CMPOOO3 的意思,因为这里有一部很好的纪录片。但是,我无法理解第一行if(COMMAND cmake_policy),这是什么意思?谢谢。
if(COMMAND cmake_policy)
该构造if (COMMAND...)可用于检查是否存在函数或宏。从手册:
if (COMMAND...)
if(COMMAND 命令名) 如果给定名称是可以调用的命令、宏或函数,则为真。
if(COMMAND 命令名)
如果给定名称是可以调用的命令、宏或函数,则为真。
通常,这用于确保 CMake 脚本与可能未定义函数的旧版本 CMake 兼容。