Merge branch '164-modbuild-add-checks-when-constructing-hierarchical-names-for-modulefile-and-prefix' into '32-overlay-implementation'

Resolve "modbuild: add checks when constructing hierarchical names for modulefile and PREFIX"

See merge request Pmodules/src!136
This commit is contained in:
2022-06-28 13:22:59 +00:00
+24 -7
View File
@@ -746,21 +746,38 @@ pbuild::make_all() {
}
[[ -n ${GROUP} ]] || std::die 1 \
"${module_name}/${module_version}:" \
"%s: %s" \
"${module_name}/${module_version}" \
"group not set."
# define defaults if not set in configuration file
: ${Compiler_HIERARCHY:='${COMPILER}/${COMPILER_VERSION}'}
: ${CUDA_HIERARCHY:='${COMPILER}/${COMPILER_VERSION} cuda/${CUDA_VERSION}'}
: ${MPI_HIERARCHY:='${COMPILER}/${COMPILER_VERSION} ${MPI}/${MPI_VERSION}'}
: ${HDF5_HIERARCHY:='${COMPILER}/${COMPILER_VERSION} ${MPI}/${MPI_VERSION} hdf5/${HDF5_VERSION}'}
: ${HDF5_serial_HIERARCHY:='${COMPILER}/${COMPILER_VERSION} hdf5_serial/${HDF5_SERIAL_VERSION}'}
# define hierarchies
if [[ -v COMPILER_VERSION ]]; then
Compiler_HIERARCHY='${COMPILER}/${COMPILER_VERSION}'
fi
if [[ -v COMPILER_VERSION ]] && [[ -v HDF5_SERIAL_VERSION ]]; then
HDF5_serial_HIERARCHY='${COMPILER}/${COMPILER_VERSION}'
HDF5_serial_HIERARCHY+=' hdf5_serial/${HDF5_SERIAL_VERSION}'
fi
if [[ -v COMPILER_VERSION ]] && [[ -v MPI_VERSION ]]; then
MPI_HIERARCHY='${COMPILER}/${COMPILER_VERSION}'
MPI_HIERARCHY+=' ${MPI}/${MPI_VERSION}'
fi
if [[ -v COMPILER_VERSION ]] && [[ -v MPI_VERSION ]] && [[ HDF5_VERSION ]]; then
HDF5_HIERARCHY='${COMPILER}/${COMPILER_VERSION}'
HDF5_HIERARCHY+=' ${MPI}/${MPI_VERSION}'
HDF5_HIERARCHY+=' hdf5/${HDF5_VERSION}'
fi
# evaluate
local names=()
local vname="${GROUP}_HIERARCHY"
if [[ -n ${!vname} ]]; then
names=( $(eval echo ${!vname}) )
else
std::die 1 \
"%s: %s" \
"${module_name}/${module_version}" \
"not all hierarchical dependencies loaded!"
fi
modulefile_dir=$(join_by '/' \