我写了一个CMake模块来查找libclang:
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)。 / p>
答案 0 :(得分:1)
添加HINTS or PATHS flag以建议搜索位置。
如果您想要包含非标准位置的一般方法,您可以做两件事。一个是确保用户知道将非标准位置放在LD_LIBRARY_PATH
环境变量上,然后将其作为find_path
的提示和find_library
的{{1}}建议。
另一种选择是放置一个自定义环境变量,并告诉用户如果它是非标准的,则设置它。例如,ENV LD_LIBRARY_PATH
,并将其包含在HINTS中。
当然,你可以做到这两点,这将是最一般的。