spack: # variations of this environment can be controlled via environment variables during `spack env create` definitions: # CUDA - cuda: [] - cuda: [cuda, blaspp +cuda, lapackpp ^blaspp +cuda] when: env.get("SPACK_STACK_USE_CUDA", "1") == "1" - cuda: [cuda, blaspp, lapackpp] when: env.get("SPACK_STACK_USE_CUDA", "1") != "1" # basic Python dependencies for WarpX Python PICMI bindings - python: [] - python: [python, py-pip, openpmd-api +python] when: env.get("SPACK_STACK_USE_PYTHON", "1") == "1" - python: [openpmd-api] when: env.get("SPACK_STACK_USE_PYTHON", "1") != "1" specs: - adios2 - ccache - cmake - fftw - hdf5 - mpi - pkgconfig - $cuda - $python packages: all: # since lxplus has multiple CPU micro-architectures, we do not tune for a specific one # in the future, if highest on-CPU performance is needed, we should not limit this to generic x86_64, # otherwise the compiler will not use recent vector operations, among other recent CPU hardware features. target: [x86_64] compiler: [gcc@11.2.0] variants: ~fortran providers: mpi: [openmpi] ncurses: # This is needed for any build of ncurses on lxplus, due to its AFS filesystem variants: +symlinks compilers: - compiler: environment: {} extra_rpaths: [] spec: gcc@11.2.0 paths: cc: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/gcc cxx: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/g++ f77: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/gfortran fc: /cvmfs/sft.cern.ch/lcg/releases/gcc/11.2.0-ad950/x86_64-centos7/bin/gfortran flags: {} operating_system: centos7 target: x86_64 modules: [] config: build_jobs: 6 # Spack defaults will try to set permissions in a way which is forbidden on the LXPLUS file system (AFS) allow_sgid: false