CMAKE_POLICY_DEFAULT_CMP<NNNN>

当 CMake 策略 CMP<NNNN> 未设置时,其默认值。

命令 cmake_minimum_required(VERSION)cmake_policy(VERSION) 默认情况下,不会设置指定版本后引入的策略。将 CMAKE_POLICY_DEFAULT_CMP<NNNN> 设为 OLDNEW 以指定策略 CMP<NNNN> 的默认值,其中 <NNNN> 是策略编号。

项目不应该在 CMake 代码中设置此变量,作为设定自己的策略的一种方式;而是使用 cmake_policy(SET)。此变量用于外部设置策略,项目本身尚未更新这些策略

  • 运行 CMake 的用户可以在缓存中设置此变量(例如 -DCMAKE_POLICY_DEFAULT_CMP<NNNN>=<OLD|NEW>)。在使用旧行为时将其设置 OLD 以取消策略警告,或设置 NEW 以尝试使用新行为构建项目。

  • 要在不修改第三方代码的情况下设置策略,项目可以在调用 add_subdirectory() 之前设置此变量,该调用会添加一个第三方项目。