Я пытаюсь создать libC++ с LLVM/Clang. Я сталкиваюсь с несколькими проблемами. Во-первых, хотя LLVM/Clang поддерживает как Make-файлы, так и Cmake, проект libC++ отказался от поддержки Makefile. Поэтому я застрял с Cmake для этого конкретного компонента. Во-вторых, инфраструктура LLVM/Clang не настраивает libC++, поэтому ее не à la carte, как я думал. Поэтому мне нужно повернуть ручки, чтобы все работало.Как настроить конкретный подкаталог и построить из дерева?
Вот как выглядит дерево, с которым я работаю. Источники находятся под llvm
(в дереве), а артефакты находятся под build
(вне дерева).
Working directory
|
+- build (artifacts and staging)
|
+- llvm (source tree)
|
+- tools
| |
| +- Compiler Front End (Clang)
|
+- projects
|
+- Compiler RT
|
+- libcxx
|
+- libcxx ABI
мне нужно запустить CMake и сказать ему, чтобы настроить то, что в llvm/projects/libcxx
, и сказать CMake для создания Makefiles, которые строят и сцены в соответствующий каталог под build
. Все остальное может использовать Makefiles. (Непонятно мне, что такое «соответствующий каталог», так как документация по проекту не говорит мне. Я перейду через этот мост, но я хотел бы начать с build
).
Я посмотрел на Cmake man pages, и я не могу найти способ указать эти простые требования. Например, я могу найти ARCHIVE_OUTPUT_DIRECTORY
и CMAKE_Fortran_MODDIR_FLAG
, но я не вижу, где могу указать, что все идет по адресу build
. (Configure and Makefiles довольно просты - я вхожу в каталог и запускаю configure
, или просто говорю make -f llvm/projects/libcxx/Makefile
, и все просто работает).
Как сообщить Cmake, чтобы настроить то, что находится в llvm/projects/libcxx
, и как я могу сказать, что он генерирует Make-файлы, которые определяют build
как каталог сборки и вывода?
В чем проблема с 'cd build && cmake ../llvm && make'? – BenPope