如何避免 cmake 读取其 "system cache" $HOME/.cmake/

How to avoid cmake to read in its "system cache" $HOME/.cmake/

当我 运行 cmake 与一些项目如 caffegflags 时,它会在系统级别写入一些信息。具体来说,在 linux 系统上,它会生成一些目录,例如 $HOME/.cmake/Caffe$HOME/.cmake/gflags

我的问题是此信息以后将用于我编译的任何项目。结果,$HOME/.cmake 中引用的程序被(部分)找到,即使我不想要它(就我而言,我定义了外部变量来控制外部程序 cmake 是允许的考虑给定的编译)。 当前的解决方案是在需要时删除目录 $HOME/.cmake(即在编译我的新程序之前)。我考虑在 .bashrc 中添加一个 rm -rf $HOME/.cmake 但这并不完全令人满意(也不复杂!)。谁能提出更好的解决方案?

注意:问题中的表达式"system cache"可能是错误的。如果能获得更好的任期,我​​将不胜感激。感谢您对此的任何反馈(实际上,如果我知道正确的表达方式,我可能已经在网上找到了解决方案...)


编辑:

一旦您知道 "system cache" 实际上是 User Package Registry,答案就很简单了。见下文...

目录 $HOME/.cmakeUser Package Registry。要避免 find_package() 在此目录中搜索,请使用选项 NO_CMAKE_PACKAGE_REGISTRY。请参阅其文档的第 6 点:

https://cmake.org/cmake/help/v3.0/command/find_package.html