mirror of
https://github.com/Pmodules/Pmodules.git
synced 2026-06-25 17:13:10 +02:00
build-system: prefix for modulefiles can differ from install prefix
This commit is contained in:
@@ -764,12 +764,12 @@ pbuild::make_all() {
|
||||
fi
|
||||
|
||||
modulefile_dir=$(join_by '/' \
|
||||
"${overlay_dir}/${GROUP}/${PMODULES_MODULEFILES_DIR}" \
|
||||
"${ol_dir}/${GROUP}/${PMODULES_MODULEFILES_DIR}" \
|
||||
"${names[@]}" \
|
||||
"${module_name}")
|
||||
modulefile_name="${modulefile_dir}/${module_version}"
|
||||
|
||||
PREFIX="${overlay_dir}/${GROUP}/${module_name}/${module_version}"
|
||||
PREFIX="${ol_install_dir}/${GROUP}/${module_name}/${module_version}"
|
||||
local -i i=0
|
||||
for ((i=${#names[@]}-1; i >= 0; i--)); do
|
||||
PREFIX+="/${names[i]}"
|
||||
@@ -1479,7 +1479,7 @@ pbuild.bootstrap() {
|
||||
|
||||
MODULECMD=$(which true)
|
||||
GROUP='Tools'
|
||||
PREFIX="${overlay_dir}/${GROUP}/Pmodules/${PMODULES_VERSION}"
|
||||
PREFIX="${ol_dir}/${GROUP}/Pmodules/${PMODULES_VERSION}"
|
||||
|
||||
C_INCLUDE_PATH="${PREFIX}/include"
|
||||
CPLUS_INCLUDE_PATH="${PREFIX}/include"
|
||||
|
||||
+31
-21
@@ -36,6 +36,8 @@ declare PMODULES_TMPDIR=''
|
||||
|
||||
source libpbuild.bash || \
|
||||
std::die 3 "Oops: cannot source library -- '$_'"
|
||||
source libpmodules.bash || \
|
||||
std::die 3 "Oops: cannot source library -- '$_'"
|
||||
|
||||
# save arguments, (still) required for building dependencies
|
||||
declare -r ARGS="$@"
|
||||
@@ -154,7 +156,7 @@ declare opt_verbose='no'
|
||||
# array collecting all modules specified on the command line via '--with=module'
|
||||
declare -a opt_with_modules=()
|
||||
|
||||
declare opt_overlay_name_or_dir=''
|
||||
declare opt_ol_name_or_dir=''
|
||||
|
||||
|
||||
parse_args() {
|
||||
@@ -259,10 +261,10 @@ parse_args() {
|
||||
opt_update_modulefiles='yes'
|
||||
;;
|
||||
--overlay )
|
||||
opt_overlay_name_or_dir=$2
|
||||
opt_ol_name_or_dir=$2
|
||||
;;
|
||||
--overlay=* )
|
||||
opt_overlay_name_or_dir=${1/*=}
|
||||
opt_ol_name_or_dir=${1/*=}
|
||||
;;
|
||||
-- )
|
||||
:
|
||||
@@ -416,7 +418,7 @@ declare -r OVERLAY_CONF="${PMODULES_ROOT}/${PMODULES_CONFIG_DIR}/overlays.conf"
|
||||
# Arguments
|
||||
# $1: name or directory of overlay
|
||||
#
|
||||
get_overlay_name_and_dir() {
|
||||
get_ol_name_and_dir() {
|
||||
local "$1" # upvar for overlay name
|
||||
local "$2" # upvar for overlay directory
|
||||
local config_files=()
|
||||
@@ -447,7 +449,7 @@ get_overlay_name_and_dir() {
|
||||
parse_args "$@"
|
||||
|
||||
#
|
||||
# set overlay_name, overlay_dir and opt_system
|
||||
# set ol_name, ol_dir and opt_system
|
||||
#
|
||||
# --overlay=name
|
||||
# lookup overlay directory, system name equivalent to overlay name
|
||||
@@ -456,31 +458,39 @@ parse_args "$@"
|
||||
# --overlay=dir
|
||||
# use given overlay dir and default system name
|
||||
# --system=name
|
||||
# lookup name, set overlay_dir of found config
|
||||
declare overlay_name=''
|
||||
declare overlay_dir=''
|
||||
if [[ -n "${opt_overlay_name_or_dir}" ]]; then
|
||||
if ! get_overlay_name_and_dir overlay_name overlay_dir "${opt_overlay_name_or_dir}"; then
|
||||
# lookup name, set ol_dir of found config
|
||||
declare ol_name=''
|
||||
declare ol_type=''
|
||||
declare ol_dir=''
|
||||
declare ol_install_dir=''
|
||||
if [[ -n "${opt_ol_name_or_dir}" ]]; then
|
||||
get_overlay_info "${opt_ol_name_or_dir}" \
|
||||
ol_name \
|
||||
ol_type \
|
||||
ol_dir \
|
||||
ol_install_dir
|
||||
if (( $? != 0 )); then
|
||||
# not found in config
|
||||
if [[ ${opt_overlay_name_or_dir:0:1} == / ]]; then
|
||||
overlay_dir="${opt_overlay_name_or_dir}"
|
||||
if [[ ${opt_ol_name_or_dir:0:1} == / ]]; then
|
||||
ol_dir="${opt_ol_name_or_dir}"
|
||||
else
|
||||
std::die 1 "Invalid overlay name -- ${opt_overlay_name_or_dir}"
|
||||
std::die 1 "Invalid overlay name -- ${opt_ol_name_or_dir}"
|
||||
fi
|
||||
fi
|
||||
if [[ -z "${opt_system}" ]] && [[ -n "${overlay_name}" ]]; then
|
||||
opt_system="${overlay_name}"
|
||||
if [[ -z "${opt_system}" ]] && [[ -n "${ol_name}" ]]; then
|
||||
opt_system="${ol_name}"
|
||||
fi
|
||||
elif [[ -n "${opt_system}" ]]; then
|
||||
get_overlay_name_and_dir overlay_name overlay_dir "${opt_system}" || :
|
||||
get_ol_name_and_dir "${opt_system}" ol_name ol_type ol_dir ol_install_dir || :
|
||||
fi
|
||||
|
||||
[[ -z "${overlay_name}" ]] && overlay_name='unknown'
|
||||
[[ -z "${overlay_dir}" ]] && overlay_dir="${PMODULES_ROOT}"
|
||||
[[ -z "${opt_system}" ]] && opt_system=$(std::get_os_release)
|
||||
ol_name="${ol_name:-unknown}"
|
||||
ol_dir="${ol_dir:-${PMODULES_ROOT}}"
|
||||
ol_install_dir="${ol_install_dir:-${ol_dir}}"
|
||||
opt_system="${opt_system:-$(std::get_os_release)}"
|
||||
|
||||
echo overlay_name=$overlay_name
|
||||
echo overlay_dir=$overlay_dir
|
||||
echo ol_name=$ol_name
|
||||
echo ol_dir=$ol_dir
|
||||
echo opt_system=$opt_system
|
||||
|
||||
pbuild.jobs "${opt_jobs}"
|
||||
|
||||
Reference in New Issue
Block a user