2.8 KiB
uLib
base toolkit library
CMT Cosmic Muon Tomography reconstruction, analysis and imaging software Developed by University of Padova and INFN Sezione di Padova Italy
Build Instructions
This project relies on conan (v2) for dependency management (Eigen3, Boost) and cmake for configuration. VTK is provided through the micromamba/conda-forge environment.
Prerequisites
This project requires a conda or micromamba environment containing the necessary global tools like ROOT, VTK, and Conan (v2). We provide a condaenv.yml file to quickly build this environment.
Installing Micromamba (Optional)
If you do not have conda installed, micromamba is a fast and lightweight alternative. You can install it on Linux via:
"${SHELL}" <(curl -L micro.mamba.pm/install.sh)
Creating the Environment
You can create and activate the environment using either micromamba or conda.
Using Micromamba:
micromamba env create -f condaenv.yml
micromamba activate uLib
Using Conda:
conda env create -f condaenv.yml
conda activate uLib
Configure and Build
Standard build (GCC + Ninja + ccache)
The default conan profile uses Ninja as the generator and ccache for compiler caching, dramatically speeding up incremental rebuilds.
- Configure Conan profile (first time only):
conan profile detect
- Install Conan dependencies:
conan install . --output-folder=build --build=missing
- Configure with CMake:
cmake --preset conan-release
- Build:
cmake --build build -j$(nproc)
- Clean build (wipe and rebuild everything):
cmake --build build --clean-first -j$(nproc)
- Run tests:
cmake --build build --target test -j$(nproc)
# or equivalently:
ctest --test-dir build --output-on-failure -j$(nproc)
LLVM/Clang build (clang + lld + ccache — fastest)
A fast conan profile is provided that uses clang, lld (LLVM linker), and ccache. Install them into your environment first:
micromamba install -n uLib -y clang clangxx lld -c conda-forge
Then build using the fast profile:
conan install . --output-folder=build --build=missing --profile=fast
cmake -B build -G Ninja \
-DCMAKE_TOOLCHAIN_FILE=build/conan_toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
The fast profile is defined at ~/.conan2/profiles/fast and sets:
CMAKE_C_COMPILER=clang/CMAKE_CXX_COMPILER=clang++CMAKE_EXE_LINKER_FLAGS=-fuse-ld=lldCMAKE_CXX_COMPILER_LAUNCHER=ccache
Make python package
micromamba run -n uLib env USE_CUDA=ON poetry install