cmake和llvm-config配置

时间:2018-07-15 01:46:10

标签: cmake llvm-clang

我在Unix计算机上安装了多个版本的llvm,我正在构建一个CMake项目,该项目要求LLVM50及更低版本,但设置可找到LLVM60的CMake LLVM_CONFIG路径。

是否有一种方法可以促使CMake找到正确的LLVM版本。

2 个答案:

答案 0 :(得分:1)

您没有写过如何通过命令行访问这些版本的信息(例如,Clang 3.9是否以clang-3.9执行,还是必须将其bin目录导出到$PATH环境变量中? ?)

一旦所需的LLVM / Clang版本位于我的$PATH中,我通常要做的就是将llvm-config用于我感兴趣的特定版本,以传递cmake变量值(尤其是LLVM_DIR),例如

cmake \
  -GNinja \
  -DCMAKE_C_COMPILER=clang \
  -DCMAKE_CXX_COMPILER=clang++ \
  -DLLVM_DIR="$(llvm-config --cmakedir)" \
  -DCMAKE_BUILD_TYPE=Debug \
[...]

如果您想要的LLVM版本中没有--cmakedir选项,请改用$(llvm-config --prefix)/share/llvm/cmake/)之类的东西(或带有定义的cmake目录所在的地方)。

此外,如前所述,将CMAKE_C_COMPILERCMAKE_CXX_COMPILER调整为正确的可执行文件名称。

答案 1 :(得分:1)

您可以在Linux中更新$PATH变量,例如:

export $PATH=<path_to_llvm_bin_folder>:$PATH

如果您始终使用特定版本的llvm,也可以将其放置在.bashrc文件中。