Installation and Build Instructions
Building Bitwuzla on Linux and macOS
# Clone Bitwuzla repository
git clone https://github.com/bitwuzla/bitwuzla
cd bitwuzla
# Configure Bitwuzla release build
./configure.py
# Build and install
cd build && ninja install # or just `ninja` to only build Bitwuzla
Note
If Bitwuzla is not installed, you can find the binary in build/src/main/
and the library in build/src/.
Required Dependencies
Optional Dependencies
Note
If the build system does not find CaDiCaL or SymFPU, it will fall back to downloading and building a suitable version itself.
Python Bindings
# Clone Bitwuzla repository
git clone https://github.com/bitwuzla/bitwuzla
cd bitwuzla
# Build and install Bitwuzla Python bindings
pip install .
For how to use the Python bindings, please refer to the Python API Documentation.
Required Dependencies
Building without pip
# Clone Bitwuzla repository
git clone https://github.com/bitwuzla/bitwuzla
cd bitwuzla
./configure.py --python
# Build Python bindings
cd build && ninja python-bindings
Note
The Python module can be found in build/src/api/python/.
Building Bitwuzla for Windows
Bitwulzla can be either cross-compiled via Mingw-w64 or MSYS2.
Required Dependencies
The following mingw packages are required to compile Bitwuzla for Windows:
mingw-w64-x86_64-gcc
mingw-w64-x86_64-gmp
mingw-w64-x86_64-meson
mingw-w64-x86_64-mpfr
mingw-w64-x86_64-ninja
mingw-w64-x86_64-python3
mingw-w64-x86_64-cython (optional for Python bindings)
mingw-w64-x86_64-gtest (optional for debug builds)
mingw-w64-x86_64-python-pytest (optional for debug builds)
On arm64 machines, replace x86_64 with aarch64 for the packages above. After setting up the MSYS2 environment, follow the Linux/macOS building instructions. For cross-compilation add flag –win64 to the configure line.
# Clone Bitwuzla repository
git clone https://github.com/bitwuzla/bitwuzla
cd bitwuzla
# Configure Bitwuzla release build
./configure.py --win64
# Build and install
cd build && ninja
API Documentation
The documentation for the latest stable release is available at: https://bitwuzla.github.io/docs
You can build the documentation from the repository as follows.
./configure.py --docs --python
cd build && ninja docs
The documentation can be found in build/docs/.
Required Dependencies
Note
Configure with --python to include the documentation for the Python
bindings.
Code Coverage Reports
# Generate code coverage reports for debug build
./configure.py debug --coverage
cd build && meson test && ninja coverage
Note
The code coverage reports can be found in build/meson-logs/.