Cmake 包括各种分发模块(即,填充在Modules/cmake 安装目录中;例如,/usr/share/cmake-3.5/Modules/FindBoost.cmake)。
在开发包含名称与这些分发模块冲突的内部库的代码时,这会带来挑战,因为会find_package(Xyz)找到分发模块 ( /usr/share/cmake-3.5/Modules/FindXyz.cmake) 而不是用户模块 ( /home/user/opt/lib/cmake/Xyz-config.cmake)。我尝试设置CMAKE_FIND_ROOT_PATHand CMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY,但无济于事。
如何在评估时强制 cmake 排除其自己的分发模块find_package()?