cmake - CMake:清理其他生成的文件
问题描述
我正在创建一个 CMake 项目,其中我的库的链接命令会生成一个附加.map
文件(使用-Wl,-Map=my-file.map
GCC 选项)。
该文件已正确创建,但我希望生成的清理任务能够像其他生成的文件一样正确删除该文件。
所以我试图让 CMake 意识到这个“新”文件要被清除。
看起来结合set_property和ADDITIONAL_CLEAN_FILES是解决方案,但我无法使其正常工作。
set_property(
DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
TARGET my-target
APPEND
PROPERTY ADDITIONAL_MAKE_CLEAN_FILES my-file.map
)
请注意,我还想让 CMake 知道该文件来自my-target
目标。my-target
这意味着只有在我清理目标时才应该删除这个附加文件。
此外,如果将来有必要,我想将其他文件添加到此干净列表中(因此使用APPEND
.
解决方案
该set_property
命令要求您选择一个范围(DIRECTORY
或TARGET
),而不是两者。由于您想将此属性应用于my-target
目标,因此请仅使用TARGET
范围。
此外,ADDITIONAL_MAKE_CLEAN_FILES
目录属性已被弃用,不应再使用。相反,请在ADDITIONAL_CLEAN_FILES
此处使用目标属性:
set_property(
TARGET my-target
APPEND
PROPERTY ADDITIONAL_CLEAN_FILES my-file.map
)
推荐阅读
- sql - 将日期类型转换为仅显示时间
- windows - 在 Windows Jump Server 的情况下 Ansible 可以工作吗?
- julia - 用于加权方差的 Julia 函数返回“错误”值
- python - 使用向boto3注入变量时出现ValidationException
- php - [Route: admin.event.destroy] [URI: admin/event/event/{id}] 缺少必需的参数
- r - 联合列名
- python - 无法在 Python Selenium 中使用显式等待?
- python-3.x - Pandas 使用列表中的 ColumnNames 创建 DataFrame
- go - Go Gin 中间件事件
- oracle - 金门复制极度延迟