Початок роботи
Вимоги:
- CMake 3.28+ і компілятор із підтримкою C++23.
- У Windows — встановлений виконуваний файл Clang у
PATHабо вProgram Files/LLVM/bin; конфігурування одразу завершується з помилкою, якщо його немає або його не вдається запустити. - C++ SDK LLVM 23.1.x (>=23.1.1) для збирання компілятора. CMake надає перевагу
глобальному встановленню, а якщо його немає, завантажує зафіксований SDK 23.1.2
у
thirdparty/; див. налаштування SDK і контракт компіляції. - Boost 1.90+ з Boost.Multiprecision для компілятора і runtime; компілятору також потрібен Boost.Parser. Multiprecision складається лише із заголовків і не потребує бінарної бібліотеки Boost.
- toml++ 3.4.0 для маніфестів проєктів; див. налаштування залежності.
- Звичайні збирання і тести не потребують Erlang/OTP. Тести використовують еталонні фікстури проєкту. Необов'язкові живі аудити та явна регенерація фікстур потребують Erlang/OTP 29+.
У macOS:
xcode-select --install
brew install cmake boost erlang tomlplusplus llvm@23
У Windows встановіть LLVM/Clang глобально для інструментів компілятора хоста.
Встановіть робоче навантаження Visual Studio Desktop development with C++ і
Windows SDK, а також Ninja. Використовуйте командний рядок x64 Native Tools
або Developer PowerShell, налаштований для x64, з clang-cl, cmake і ninja
у PATH. CMake перевіряє ABI MSVC, компонування з Windows SDK і підтримку
std::expected з C++23. Самі лише інструменти командного рядка LLVM не містять
потрібного C++ SDK; CMake завантажує його окремо, коли LLVMConfig.cmake і
відповідних бібліотек немає.
CMake під час першого використання завантажує Boost 1.90.0 і toml++ 3.4.0 до
ігнорованого каталогу thirdparty/, перевіряє їхні контрольні суми SHA-256 і
зберігає як архіви, так і розпаковані вихідні коди. Подальші конфігурування,
зокрема в нових каталогах збирання, повторно використовують ці файли без доступу
до мережі. Видалення build/ не видаляє залежностей. Коли власний стек TLS у
CMake не може перевірити сертифікати (наприклад, CMake, що постачається разом зі
Strawberry Perl), завантаження повторюються через curl хоста і все одно
перевіряються. Збирання лише runtime завантажують тільки Boost. Явно задані
корені залежностей, описані нижче, мають пріоритет і дозволяють налаштування без
мережі; недійсний явний корінь призводить до помилки без завантаження. Linux і
macOS і далі використовують встановлені залежності або локальні вихідні коди в
thirdparty/. Запасне завантаження SDK LLVM працює на всіх трьох
платформах, з офіційними архівами, зафіксованими за SHA-256, для Windows
x64/ARM64, Linux x64/ARM64 і macOS ARM64. Архіви та розпаковані SDK лишаються в
thirdparty/ для повторного використання без мережі. Інші архітектури хоста і
крос-збирання потребують явно заданого відповідного LLVM_DIR.
Для збирання компілятора залежності LLVM zlib і zstd виявляються серед
встановлених бібліотек. У Windows за відсутності бібліотек виконується
завантаження zlib 1.3.2 і zstd 1.5.7 з перевіркою SHA-256, після чого вони
статично збираються в конфігураціях Debug/Release у thirdparty/. Ці збирання
повторно використовуються в різних каталогах збирання і відповідають
компілятору, архітектурі та CRT хоста. Задайте ZLIB_ROOT або zstd_ROOT, щоб
надати перевагу встановленій бібліотеці; CLAUSE_DOWNLOAD_ZLIB=OFF і
CLAUSE_DOWNLOAD_ZSTD=OFF вимикають відповідні запасні варіанти. Виявлення SDK
MSVC відхиляє кешовані бібліотеки MinGW .a, як-от ті, що постачаються зі
Strawberry Perl. Linux і macOS використовують встановлені пакети для розробки.
Clause