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_PATH
and CMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ONLY
,但无济于事。
如何在评估时强制 cmake 排除其自己的分发模块find_package()
?