我想在 CMake 中取消设置一个(布尔)属性,以便get_property(... SET)返回0尽管该属性首先被设置。将属性设置为0、FALSE、 或OFF是不够的。如何实现这一目标?
我有一些生成一些源文件的自定义命令。CMake 会自动将GENERATED源文件属性分配给这些文件。这似乎使 GNU Makefile 生成器添加一条规则来删除这些带有make clean.
但是,我不希望清理这些文件,因为一旦它们存在,用户就可以编辑它们。自定义命令应该仅确保它们不存在时生成。在配置时使用execute_process而不是自定义命令生成它们是不可行的。
设置GENERATED为0、FALSE、 或OFF不会从清理中排除源。
我目前绑定了 Ubuntu 16.04,如果可能的话,应该避免让所有用户使用更新的 CMake 版本。
您需要将其设置为空:
# test unsetting a property
set_property(TARGET Properties PROPERTY TARGETTEST)
get_property(TARGETRESULT TARGET Properties PROPERTY TARGETTEST SET)
if (TARGETRESULT)
message(SEND_ERROR "Error: target prop not unset, "
"result is TARGETRESULT=${TARGETRESULT}")
endif ()
Run Code Online (Sandbox Code Playgroud)
(来自https://github.com/Kitware/CMake/blob/master/Tests/Properties/CMakeLists.txt)
| 归档时间: |
|
| 查看次数: |
2919 次 |
| 最近记录: |