3

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?

2
  • 1
    Try to get rid of LLVM's version number, e.g. find_package(LLVM REQUIRED). Commented Dec 23, 2017 at 22:41
  • Still doesn't work. The brew install has an invalid version. Commented Dec 23, 2017 at 23:47

1 Answer 1

6

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.

Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.