Installation and Build Instructions

Building Bitwuzla

# 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/.

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.

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/.

Cross Compiling for Windows

Cross compiling Bitwuzla with Mingw-w64 can be done as follows:

# 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/.

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/.