Mantid is a c++20 and python 3.11 repository that has a qt gui frontend. It is configured using cmake and uses conda for dependencies. The Mantid project provides tools to support the processing of materials-science data. This data can be gathered from Neutron scattering or Muon spectroscopy experiments or as the result of simulation.
- Install pixi and activate the environment specified in
pixi.toml:pixi shell(oreval $(pixi shell-hook)for non-interactive use)
- Dependencies are tracked from a conda metapackage in
conda/recipes/mantid-developer
- Configure:
- Linux:
cmake --preset=linux . && cd build/ - Windows:
cmake --preset=win64 . && cd build/ - macOS (Apple Silicon):
cmake --preset=osx-arm64 . && cd build/
Choose the preset that matches your platform. If you are unsure, check the available presets in
CMakePresets.jsonor ask for guidance. - Linux:
- Build:
- framework
ninja Framework - gui
ninja workbench - tests
ninja AllTests
- framework
- Run tests
- unit tests
ctest - system tests
./systemtest
- unit tests
- Run
clang-tidyusing the configuration in.clang-tidy - Format using
pre-commit run --all-files - Follow PR template in
.github/PULL_REQUEST_TEMPLATE.md
.github/workflowsbuild configuration for github-actionsbuildconfig/Jenkinsbuild configuration for jenkins CIbuildconfig/CMakecustom cmake modulesconda/recipesrecipes for conda packagesdev-docsdeveloper documentationdocsuser documentationFrameworknon-gui codeinstrumentxml files describing facilities, instruments, and sample environmentsqtgui codescriptspython codeTestingtest data and system test frameworktoolssmall tools for maintaining code and report generation
- Ask a clarifying question, propose a short plan, or open a draft PR with notes
- Look for PRs with similar changes