Our aim is to keep the number of external dependencies as low as possible. However, there are a few good reasons to rely on a few external packages:
Our aim is to keep the number of external dependencies as low as possible. However, there are a few good reasons to rely on a few external packages.
However, the only true dependence is "python3", since we install "conan" via "pip3" and then obtain packages on all systems via the conan packet manager. Those packages are:
## eigen3
- header only
- for linear algebra and geometry
- we provide our own version as third party
- avoid implicit boost dependencies: find with `grep -Ri "Eigen3_INCLUDE" .` and remove!
- use explicit boost dependence tracking with cmake target CORSIKAeigen3
## boost
- header only
- we provide our own version as third party
- check the use of boost with: `grep -R "#include <boost/" .`
- avoid implicit boost dependencies: find with `grep -R "Boost_INCLUDE" .` and remove!
- use explicit boost dependence tracking with cmake target CORSIKAboost
- boost-histogram
## phys/Units
## phys/Units -> included in framework
- header only
- for physics units
- we provide our own version as third party
- we provide our own version as part of the framework itself
## catch2
- header only
- for unit testing.
- we provide our own version as third party
## pythia8
- event and decay generator
- we support system-level install, and provide version in ThirdParty
- we support system-level install, and provide a tar version in "modules"
## conex
- cascade equation solver for air showers
- we support system-level install, and provide version in ThirdParty
- we support system-level install, and provide a git-submodule version via "modules"
## proposal
- muon and e.m. physics
- we provide a git-submodule version via "modules"