Reputation: 151
I'm trying to use the stock LLVM 5.0.0 provided by Homebrew (MacOS High Sierra 10.13.3). LLVM is installed on my machine under /usr/local/Cellar/llvm/5.0.0/
Now, in my project, I have the following lines in CMakeLists.txt
:
# Find the LLVM library
find_package( LLVM 5.0.0 REQUIRED )
include_directories( "${LLVM_INCLUDE_DIRS}" )
link_directories(${LLVM_LIBRARY_DIRS})
message(STATUS "LLVM include dirs: ${LLVM_INCLUDE_DIRS}")
If I run CMake without any parameters, I get:
CMake Error at CMakeLists.txt:74 (find_package): By not providing "FindLLVM.cmake" in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by "LLVM", but CMake did not find one.
Could not find a package configuration file provided by "LLVM" (requested version 5.0.0) with any of the following names:
LLVMConfig.cmake llvm-config.cmake
Add the installation prefix of "LLVM" to CMAKE_PREFIX_PATH or set "LLVM_DIR" to a directory containing one of the above files. If "LLVM" provides a separate development package or SDK, be sure it has been installed.
It tells me that it couldn't find LLVM. So, I pass the path to the LLVM_DIR, like this:
cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/share/cmake/modules/
I would expect everything to work. Instead I get the following error:
CMake Error at CMakeLists.txt:74 (find_package): Could not find a configuration file for package "LLVM" that is compatible with requested version "5.0.0".
The following configuration files were considered but not accepted:
/usr/local/Cellar/llvm/5.0.0/share/cmake/modules/llvm-config.cmake, version: unknown
For some reason the version is not present anywhere in the share/cmake/modules
directory.
How can I fix this, without changing the brew-installed LLVM?
Upvotes: 3
Views: 4671
Reputation: 151
Found the answer. I was passing a wrong path to LLVM_DIR.
I just have to use another directory (buried in lib
, not in share
):
cmake .. -DLLVM_DIR=/usr/local/Cellar/llvm/5.0.0/lib/cmake/llvm/
Not sure why brew decided to install 2 versions of CMake helpers for LLVM, one in share
and one in lib
.
Upvotes: 6