File: install.rst

package info (click to toggle)
bitwuzla 0.8.2-1
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 43,292 kB
  • sloc: cpp: 94,870; python: 3,254; ansic: 1,613; sh: 50; makefile: 10
file content (147 lines) | stat: -rw-r--r-- 3,258 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
Installation and Build Instructions
===================================

Building Bitwuzla
-----------------

.. code:: bash

  # 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**

  * `Python >= 3.7 <https://www.python.org>`_
  * `Meson >= 0.64 <https://mesonbuild.com>`_
  * `Ninja <https://ninja-build.org>`_
  * `GMP >= v6.1 (GNU Multi-Precision arithmetic library) <https://gmplib.org>`_
  * `CaDiCaL >= 1.5.0 <https://github.com/arminbiere/cadical>`_
  * `SymFPU <https://github.com/martin-cs/symfpu>`_

* **Optional Dependencies**

  * `CryptoMiniSat <https://github.com/msoos/cryptominisat>`_
  * `Kissat <https://github.com/arminbiere/kissat>`_


.. 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
---------------
.. code:: bash

  # 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 :ref:`python-api`.

* **Required Dependencies**

  * `cython >= 3.0.0 <https://pypi.org/project/Cython>`_
  * `meson-python <https://pypi.org/project/meson-python>`_


Building without pip
^^^^^^^^^^^^^^^^^^^^

.. code:: bash

  # 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:

.. code:: bash

  # 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


* **Required Dependencies**

  * `mingw-w64 <https://www.mingw-w64.org/>`_


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.

.. code:: bash

   ./configure.py --docs --python

   cd build && ninja docs

The documentation can be found in ``build/docs/``.

* **Required Dependencies**

  * `Doxygen <https://www.doxygen.nl>`_
  * `Sphinx >= 1.2 <https://www.sphinx-doc.org>`_
  * `sphinxcontrib-bibtex <https://sphinxcontrib-bibtex.readthedocs.io>`_
  * `Breathe <https://breathe.readthedocs.io>`_


.. note::
   Configure with ``--python`` to include the documentation for the Python
   bindings.

Code Coverage Reports
---------------------

.. code:: bash

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