CMP0098

在 3.17 版本加入.

FindFLEX 在执行时在目录 CMAKE_CURRENT_BINARY_DIR 中运行 flex

该模块提供了一个生成 FLEX 输出的 FLEX_TARGET 宏。在 CMake 3.16 及以下版本中,宏将生成一个在当前源目录中运行 flex 的自定义命令。 CMake 3.17 及更高版本更喜欢在构建目录中运行它,并使用 CMAKE_CURRENT_BINARY_DIR 作为其 add_custom_command() 调用的 WORKING_DIRECTORY。这确保任何隐式生成的文件都是相对于构建树而不是源树写入的,除非生成的文件作为绝对路径提供。

此策略为尚未更新以期待新行为的项目提供兼容性。

此策略的 OLD 行为是 FLEX_TARGET 将当前源目录用于 WORKING_DIRECTORY 以及生成隐式文件的位置。此策略的“新”行为是将当前二进制目录用于相对于生成隐式文件的“WORKING_DIRECTORY”,除非作为绝对路径提供。

此策略是在 CMake 版本 3.17 中引入的。使用 cmake_policy() 命令将其显式设置为 OLDNEW。与许多政策不同,CMake 版本 |release|当此策略未设置且仅使用“旧”行为时*不*发出警告。

备注

策略的“旧”行为是 :manual:根据定义 <cmake-policies(7)> 已弃用,并且可能会在未来版本的 CMake 中删除。