# Developer information

- Compiling OVITO on Linux

- Compiling OVITO on Windows

- Compiling OVITO on macOS

## Build requirements

The required tools to build OVITO from source are:

Tool/Package | Requirement | Notes
--- | --- | ---
C++ compiler | required | Compiler must support the C++11 standard (e.g. GNU g++ 4.8 or newer)
CMake | required | The build system used by OVITO (CMake 2.8.12 or newer required)
Git | required | The distributed version control system needed to retrieve OVITO's source code
xsltproc | optional | The XSLT processor for generating the user manual
DocBook | optional | The XSL stylesheets required to generate the user manual in HTML format
Doxygen | optional | Generates the C++ API documentation from OVITO's source code
Python | optional | Required by OVITO's Python script engine (`PyScript` plugin). Python 2.x and 3.x are supported.
NumPy | optional | Required by OVITO's Python script engine (`PyScript` plugin).
PyQt5 | optional | Required by OVITO's Python script engine (`PyScript` plugin).
Sphinx | optional | Tool for creating the Python scripting interface documentation

The library dependencies are:

Library | Requirement | Notes
--- | --- | ---
Qt5 | required | Used for OVITO's graphical user interface (version 5.4 or newer)
zlib | required | Required for reading and writing compressed files.
Boost | required | OVITO uses some utility classes from this C++ library.
pybind11 | included | Required by OVITO's Python script engine (`PyScript` plugin).
Libav | optional | Audio and video processing libraries used by OVITO to write movie files.
libnetcdf | optional | Required by the `NetCDF` plugin to read NetCDF files
FFTW | optional | Required to build the `Correlation Function` plugin.
QScintilla2 | optional | Text editing widget required by the `PyScript` plugin.
muparser | included | A math expression parser library. OVITO's source distribution contains a copy of this library, which will be used if not found on the system.
Qwt | included | For plotting and data visualization.
Botan | included | A crypto library used by OVITO's built-in SSH client. OVITO's source distribution contains a copy of this library, which will be used if not found on the system.
QtCreator SSH library | included | Required for the built-in SSH client. OVITO's source distribution contains a slightly modified copy of this library, which is automatically used.
Tachyon | included | Required to build the `Tachyon` renderer plugin. OVITO's source distribution contains a slightly modified copy of this library, which is automatically used.
Voro++ | included | Voronoi cell construction routine required by the Voronoi analysis modifier. OVITO's source distribution contains a copy of this library, which will be used if not found on the system.