Prerequisites

Aburi currently builds from source. You need:

  • CMake 4.1 or higher.

  • LLVM 18.x with LLVMConfig.cmake (I develop with LLVM 18.1.8)

  • A C++20-compatible host compiler.

  • The public source tree does not vendor LLVM.

git clone https://github.com/serjective/aburi.git
cd aburi

Configure

Point CMake at an LLVM 18 installation. The most direct path is LLVM_DIR:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=/path/to/llvm-18/lib/cmake/llvm
cmake --build build

Platform Notes

If you use llvm-config, make sure it points to LLVM 18:

/path/to/llvm-18/bin/llvm-config --cmakedir

Homebrew users should prefer the versioned prefix, for example:

$(brew --prefix llvm@18)

Linux package managers often place LLVMConfig.cmake under a path like /usr/lib/llvm-18/lib/cmake/llvm.

You can also use an LLVM prefix:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/llvm-18
cmake --build build

The compiler executable is produced at build/aburi.

Try A Sample

./build/aburi sample_c/hello_stdio.c -o hello_c
./hello_c

./build/aburi sample_cpp/classes.cpp -o classes_cpp
./classes_cpp

Public Tests

The public repository includes a runtime smoke suite under public_tests/. Enable it during configuration:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DLLVM_DIR=/path/to/llvm-18/lib/cmake/llvm -DABURI_BUILD_PUBLIC_TESTS=ON
ctest --test-dir build -R public_tests_runtime --output-on-failure

Each public smoke test is expected to compile, run, and exit with the success code 67 🙂