概述
我希望在CMake中取消设置一个(布尔)属性,以便get_property(... SET)
返回0
,即使该属性已经被设置。将属性设置为0
、FALSE
或OFF
是不够的。如何实现呢?
背景
我有一些自定义命令,生成一些源文件。 CMake会自动将GENERATED
源文件属性分配给它们。这似乎使GNU Makefile生成器添加了一条规则,使用make clean
删除这些文件。
然而,我不希望这些文件被清除,因为一旦它们存在,就有可能被用户编辑。自定义命令只应确保它们在不存在时成为生成的文件。使用execute_process
而不是自定义命令在配置时间生成它们是不可行的。
将GENERATED
设置为0
、FALSE
或OFF
并不能排除这些源文件被清理。
版本
- 操作系统:Ubuntu 16.04
- CMake:3.5.1(来自Ubuntu 16.04存储库)
我目前使用的是Ubuntu 16.04,如果可能的话,应避免让所有用户使用更新版本的CMake。
set_property
文档中所有值都标记为可选的事实。也许应该更明确地表达出来。 - bjhend