Клонированный llvm git repo, но сборка CMAKE не собирает clang ++ - только llvm - PullRequest
0 голосов
/ 10 мая 2019

Я клонировал репозиторий llvm git из https://github.com/llvm/llvm-project.git (мастер). Я на Ubuntu 18.04.

Я пробовал различные командные строки CMAKE и создал llvm, но, похоже, ни одна из них не создала clang, libcxx или что-то еще.

Я хочу собрать llvm, clang ++ и почти все, что связано с C ++. В конечном итоге я хочу поэкспериментировать с сопрограммами с «clang ++ -std = c ++ 2a -stdlib = libc ++» или «-fcoroutines-ts» - не уверен, какой именно.

Я погуглил, и, похоже, есть некоторые вариации в том, как создать clang ++. Кажется, есть 2 варианта:

  1. «Вложенная» структура. Я думаю, что именно здесь подпроекты, такие как clang, проверяются в llvm / tools.
  2. «Плоская» структура. Я думаю, что именно здесь такие подпроекты, как clang, находятся на том же уровне, что и llvm.

Репликация мерзавца, которую я клонировал, выглядит как «плоская» разновидность. Поэтому я думаю, что это означает, что я должен использовать опцию -DLLVM_ENABLE_PROJECTS = "clang; libcxx; libcxxabi; lldb; compiler-rt; lld; polly; debuginfo-tests" в CMAKE (я получил этот список из CMakeLists.txt).

Вот пример, который я пробовал:

$ cmake -G "Unix Makefiles" -DLLVM_USE_LINKER=gold -DCMAKE_INSTALL_PREFIX=~/local -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_PROJECTS="clang;libcxx;libcxxabi;compiler-rt;lld" ../llvm

$ make
$ make install

Я хочу, чтобы clang ++, libcxx и т. Д. Были установлены в ~ / local. Вместо этого я получаю только двоичные файлы llvm.

Может кто-нибудь предоставить правильную строку cmake или сказать, что я делаю неправильно?

большое спасибо.

...