CMP0098¶
在版本 3.17 中添加。
FindFLEX
运行 flex
执行时的目录 CMAKE_CURRENT_BINARY_DIR
中。
该模块提供一个 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 的未来版本中删除。