Fermitools development workflow.
The Fermitools is a composite codebase with numerous external dependencies managed by the conda package manager. Responsibility for synchronizing tag and version numbers for source repositories and dependencies devolves to the Fermitools Azure Pipeline and the Fermi Anaconda Cloud channel.
The development scripts read variables from the user's environment. These may be customized for your target REF, environment and hardware, etc.
# Linux
export FERMI_REF=TestTag-1.9.9
export FERMI_CONDA_ENV=my_fermi_env
export CPU_COUNT=4
# MacOSX
export FERMI_REF=TestTag-1.9.9
export FERMI_CONDA_ENV=my_fermi_env
export CPU_COUNT=4
Optionally on MacOSX you can set your CONDA_BUILD_SYSROOT
and MACOSX_DEPLOYMENT_TARGET
variables. If left unset they will be defaulted to the values below.
MacOSX builds require an Xcode SDK file.
export CONDA_BUILD_SYSROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk
export MACOSX_DEPLOYMENT_TARGET=10.9
Create a conda environment from the exact dependency tarballs used to create the original build environment.
./conda_fermi_build_deps_explicit.sh
conda activate my_fermi_env
source build.sh
export FERMI_NO_CHECKOUT=true
source build.sh
export FERMI_NO_BUILD=true
source build.sh
export FERMI_NO_INSTALL=true
source build.sh
export FERMI_NO_ACTIVATE=true
source build.sh