gpt4 book ai didi

cmake - 如何将 "hook"转换为 Cmake 命令 add_executable 或 add_library 以运行额外的东西?

转载 作者:行者123 更新时间:2023-12-01 15:54:42 25 4
gpt4 key购买 nike

我们使用 CMake 和普通的 Unix 生成文件进行构建。有一些静态分析检查,例如Cppcheck ,我们在项目中的每个 C/C++ 文件中运行以在编译时捕获错误。

我为 cppcheck 创建了一个自定义目标并将其附加到“所有”目标中。这会检查项目中的所有 *.c 和 *.cpp 文件。

我们想在每次更改和重新编译文件时运行检查和 仅在该文件 .检查应自动运行,用户无需在 CMake 中添加额外的命令。本质上,检查应该“附加/ Hook ”到普通的 CMake 命令 add_library()add_executable() .有没有办法在 CMake 中做到这一点?

最佳答案

虽然 add_executable (和 add_library )由 CMake 本身提供,您可以定义一个函数或同名的宏,这将“隐藏”原始 CMake 函数。在您的函数/宏中,您可以使用带下划线前缀的名称调用原始 CMake 函数:

function(add_executable target_name)
# Call the original function
_add_executable(${target_name} ${ARGN})
... perform additional steps...
endfunction(add_executable target_name)

关于cmake - 如何将 "hook"转换为 Cmake 命令 add_executable 或 add_library 以运行额外的东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55722379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com