1
votes

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?

1
Try to get rid of LLVM's version number, e.g. find_package(LLVM REQUIRED).vre
Still doesn't work. The brew install has an invalid version.Lucian Radu Teodorescu

1 Answers

2
votes

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.