2012-01-28 138 views
1

我寫了一個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)。

回答

1

添加HINTS or PATHS flag以建議它搜索的位置。

如果您想要制定一個包含非標準位置的通用方法,您可以執行兩項操作。一種是確保用戶知道將非標準位置放在LD_LIBRARY_PATH環境變量上,然後建議將其作爲find_pathfind_library的提示,並使用ENV LD_LIBRARY_PATH

另一種選擇是放置一個自定義的環境變量,並告訴用戶設置,如果它是非標準的。例如,CLANG_ROOT,並將其包含在提示中。

當然,你可以做到這一點,這將是最一般的。

+0

謝謝。你能指點我一個這樣做的示例模塊文件嗎? – exclipy 2012-01-28 11:59:40

+0

FindBLAS,FindLAPACK,FindMPI,FindBoost和FindCurses都是我用來給HINTS find_library的。如果您查看FindHDF5,它還包含來自用戶環境變量的HDF5_ROOT的提示。 – tpg2114 2012-01-28 13:03:17