我还想知道find_package(<package>)
在Linux(Ubuntu)中找到<package>
时设置的默认变量吗?
答案 0 :(得分:1)
将我的评论转化为答案
如果你必须在“最重要的一条”路径上将其融合,那么CMake's own module path包含预先发货的Find...
模块。
将CMake指向自定义路径的最重要的全局变量变量是CMAKE_MODULE_PATH
。
如果您想查看CMake在您的案例中搜索哪些目录,请致电
cmake -D CMAKE_FIND_DEBUG_MODE=ON ..
整个“搜索算法”记录在find_package()
command documentation:
搜索特定于cmake的缓存变量中指定的路径。如果传递
NO_CMAKE_PATH
,则可以跳过此步骤:CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH CMAKE_APPBUNDLE_PATH
搜索特定于cmake的环境变量中指定的路径。如果传递
NO_CMAKE_ENVIRONMENT_PATH
,则可以跳过此步骤:<package>_DIR CMAKE_PREFIX_PATH CMAKE_FRAMEWORK_PATH CMAKE_APPBUNDLE_PATH
HINTS
选项指定的搜索路径。应使用PATHS
选项指定硬编码猜测。搜索标准系统环境变量。如果传递
NO_SYSTEM_ENVIRONMENT_PATH
,则可以跳过此步骤:PATH
搜索存储在CMake用户包注册表中的路径。如果传递
NO_CMAKE_PACKAGE_REGISTRY
或将CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY
设置为TRUE
,则可以跳过此步骤。搜索当前系统的平台文件中定义的cmake变量。如果传递
NO_CMAKE_SYSTEM_PATH
,则可以跳过此步骤:CMAKE_SYSTEM_PREFIX_PATH CMAKE_SYSTEM_FRAMEWORK_PATH CMAKE_SYSTEM_APPBUNDLE_PATH
搜索存储在CMake System Package Registry中的路径。如果传递
NO_CMAKE_SYSTEM_PACKAGE_REGISTRY
或将CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY
设置为TRUE
,则可以跳过此步骤。- 醇>
PATHS
选项指定的搜索路径。这些通常是硬编码的猜测。