This page describes the supported dependency model for building and distributing Aburiscript.
Aburiscript depends on LLVM for IR construction, optimization, and final code emission. For public source builds, LLVM is an external dependency.
- Supported LLVM line:
18.x - The repository does not vendor LLVM.
- The build expects a standard
LLVMConfig.cmakeinstallation. - If you distribute prebuilt
aburibinaries, bundle the exact LLVM runtime libraries you linked against or declare them as an explicit package dependency for that release.
The safest way to point CMake at LLVM is through LLVM_DIR with an LLVM 18
installation:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DLLVM_DIR=/path/to/llvm-18/lib/cmake/llvmYou can also point CMake at the LLVM prefix instead:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=/path/to/llvm-18Then build with:
cmake --build buildBy default, this configures only the compiler targets. To include the public runtime smoke suite, enable:
-DABURI_BUILD_PUBLIC_TESTS=ONFor example:
cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DLLVM_DIR=/path/to/llvm-18/lib/cmake/llvm -DABURI_BUILD_PUBLIC_TESTS=ON- If you prefer deriving
LLVM_DIRwithllvm-config, make sure you use the LLVM 18 binary specifically. For example:
/path/to/llvm-18/bin/llvm-config --cmakedir- Homebrew users should prefer the versioned prefix, for example
$(brew --prefix llvm@18). - Linux package-manager installs often place
LLVMConfig.cmakeunder/usr/lib/llvm-18/lib/cmake/llvmor a similar versioned prefix. - CI jobs should pass
LLVM_DIRorCMAKE_PREFIX_PATHexplicitly rather than relying on a developer-local install layout.
The public repository includes a lightweight runtime smoke suite under
public_tests/.
- Enable it with
-DABURI_BUILD_PUBLIC_TESTS=ON. - Run it with
ctest -R public_tests_runtimefrom the build directory. - The harness compiles each sample with
aburi, runs the result, and expects the standard success exit code67.
- Source release: require an external LLVM
18.xinstallation. - Binary release: bundle or explicitly depend on the exact LLVM build used for that artifact.
- Public smoke tests should remain self-contained and runnable from the public repository layout alone.