Я клонировал репозиторий 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 варианта:
- «Вложенная» структура. Я думаю, что именно здесь подпроекты, такие как clang, проверяются в llvm / tools.
- «Плоская» структура. Я думаю, что именно здесь такие подпроекты, как 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 или сказать, что я делаю неправильно?
большое спасибо.