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 版本中被移除。