设置CMake的模块搜索路径
问题描述:
我写了一个CMake的模块找到libclang:设置CMake的模块搜索路径
find_path(LibClang_INCLUDE_DIR clang-c/Index.h)
find_library(LibClang_LIBRARY NAMES clang)
但我已经通过MacPorts的安装libclang到/opt/local/libexec/llvm-3.0/lib
和/opt/local/libexec/llvm-3.0/include
。由于这不是一个正常的系统位置,所以CMake没有找到它。
显示CMake的最佳方式是什么?我怎样才能找出CMake在哪里搜索?我不认为将图书馆移动到更加正常的位置是一种选择,因为我不想将事情从MacPorts放置的位置移开,并且我的系统上还有Apple的官方clang二进制文件(不包括libclang)。
答
添加HINTS or PATHS flag以建议它搜索的位置。
如果您想要制定一个包含非标准位置的通用方法,您可以执行两项操作。一种是确保用户知道将非标准位置放在LD_LIBRARY_PATH
环境变量上,然后建议将其作为find_path
和find_library
的提示,并使用ENV LD_LIBRARY_PATH
。
另一种选择是放置一个自定义的环境变量,并告诉用户设置,如果它是非标准的。例如,CLANG_ROOT
,并将其包含在提示中。
当然,你可以做到这一点,这将是最一般的。
谢谢。你能指点我一个这样做的示例模块文件吗? – exclipy 2012-01-28 11:59:40
FindBLAS,FindLAPACK,FindMPI,FindBoost和FindCurses都是我用来给HINTS find_library的。如果您查看FindHDF5,它还包含来自用户环境变量的HDF5_ROOT的提示。 – tpg2114 2012-01-28 13:03:17