Requirements
Compilers
To compile PISA, you will need a compiler supporting the C++20 standard. Our continuous integration pipeline compiles PISA and runs tests in the following configurations:
- Linux:
- GCC, versions: 10, 11, 12, 13, 14
- Clang 16, 17, 18, 19
There are currently no MacOS builds running in CI because we have no one actively maintaining them. That said, Mac builds should in theory work on the x86 architecture. The new ARM-based architecture has not been tested.
Supporting Windows is planned but is currently not being actively worked on, mostly due to a combination of man-hour shortage, prioritization, and no core contributors working on Windows at the moment. If you want to help us set up a Github workflow for Windows and work out some issues with compilation, let us know on our Slack channel.
System Dependencies
Most build dependencies are managed automatically with CMake and git submodules. However, several dependencies still need to be manually provided:
CMake >= 3.0
autoconf
,automake
,libtool
, andm4
(for buildinggumbo-parser
)- OpenMP (optional)
You can opt in to use some system dependencies instead of those in git submodules:
- Google Benchmark
(
PISA_SYSTEM_GOOGLE_BENCHMARK
): this is a dependency used only for compiling and running microbenchmarks. - oneTBB (
PISA_SYSTEM_ONETBB
): both build-time and runtime dependency. - Boost (
PISA_SYSTEM_BOOST
): both build-time and runtime dependency. - CLI11 (
PISA_SYSTEM_CLI11
): build-time only dependency used in command line tools.
For example, to use all the system installation of Boost in your build:
cmake -DPISA_SYSTEM_BOOST=ON <source-dir>