可以用位置信息编写改进的cmake日志宏吗?

ric*_*h.e 5 c++ cmake

在调试cmake代码的时候,我发现自己写的内容如下:

message( "[some_filename.cmake]: some message about what is going on here." )
Run Code Online (Sandbox Code Playgroud)

在C++中,我使用宏来自动记录文件名和行号 - 这在cmake中是否可行?理想情况下,我想用以下内容编写一个宏:

log_info( "some message about what is going on here." )
Run Code Online (Sandbox Code Playgroud)

它将打印到控制台:

|info   | some_filename.cmake[72] some message about what is going on here.
Run Code Online (Sandbox Code Playgroud)

usr*_*567 1

我认为这在一般情况下是不可能的。CMake 在调试或内省方面没有提供太多帮助。
我可以想象一个使用全局变量的宏,这些变量必须由用户在每个宏或函数的开头添加。最终,它不会减少手动工作量,反而会使代码变得混乱。

也许您可以使用编辑器的函数/宏。某些编辑器可以通过按键插入当前文件名、当前时间戳或伪随机 UUID。每当您想要记录消息时,只需添加该值,然后您就可以在代码中搜索该唯一序列。确定这对您来说是否是更好的工作流程。

最好的地方是 CMake 的功能请求。您并不是唯一可以从这一功能中受益的人。也许 Kitware 或其他人愿意开发log宏并上传到上游。