CMP0098

在 3.17 版本中添加。

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

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

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

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

此策略在 CMake 3.17 版本中引入。它可以通过 cmake_policy()cmake_minimum_required() 设置。如果未设置,CMake 不会发出警告,并使用 OLD 行为。

注意

策略的 OLD 行为按 定义已弃用,并且可能会在 CMake 的未来版本中删除。