如何设置 cmake 策略?

Tim*_*Tea 6 cmake

我正在尝试为我的基于 ARM 的笔记本电脑编译 Paraview 图形可视化软件;但是,我收到了一些似乎与 cmake 'policies' 相关的配置警告。警告文本和 cmake 手册页表明我应该能够运行命令cmake_policy()来设置特定策略;但是,我不知道如何或在哪里运行它。

如何设置特定的 cmake 策略?

Kus*_*nda 7

CMake 命令cmake_policy()记录在CMake 文档中

它通常添加到CMakeLists.txt项目文件中以更改 CMake 本身的行为,通常是为了能够CMakeLists.txt使用较新版本的 CMake处理旧功能。

您可以使用它来设置个人策略

cmake_policy(SET CMP<NNNN> OLD)
Run Code Online (Sandbox Code Playgroud)

where<NNNN>是 CMake 政策编号,whereOLD表示您想要此政策的“旧行为”(该词OLD也可以是NEW)。

或者,您可以使用该命令来设置与特定版本的 CMake 兼容的策略,使用

cmake_policy(VERSION x.xx)
Run Code Online (Sandbox Code Playgroud)

其中x.xx必须至少2.4

在任何一种情况下,CMakeLists.txt项目的文件cmake都会被修改,并且必须重新运行。

另请参阅 的文档cmake_minimum_required()

  • @Royi 是的,您可以在命令行上设置`CMAKE_POLICY_DEFAULT_CMP&lt;NNNN&gt;`,例如`-DCMAKE_POLICY_DEFAULT_CMP0063=NEW`。 (7认同)

Adm*_*mia 6

我使用 Cmake 版本 3.22.0,@kusalananda 的回答没有为我解决问题。我在顶部添加了以下行CMakeLists.txt,问题得到解决:

set(CMAKE_POLICY_DEFAULT_CMP<NNNN> NEW)
Run Code Online (Sandbox Code Playgroud)

当然,NNNN应该替换为命令行中给出的数字。