summaryrefslogtreecommitdiffhomepage
path: root/subr/ex_pkg_env.subr
diff options
context:
space:
mode:
Diffstat (limited to 'subr/ex_pkg_env.subr')
-rw-r--r--subr/ex_pkg_env.subr26
1 files changed, 16 insertions, 10 deletions
diff --git a/subr/ex_pkg_env.subr b/subr/ex_pkg_env.subr
index 822ac054..439041d9 100644
--- a/subr/ex_pkg_env.subr
+++ b/subr/ex_pkg_env.subr
@@ -4,12 +4,8 @@
exp_pkg_env_source() {
local _pkg_name="${1}" _tgt_name="${2}" \
- _tgt_name_uc _pkg_name_uc _build_type_uc \
- _vname_dst _vars_set="";
- if [ "${_pkg_name#*_flavour_*}" != "${_pkg_name}" ]; then
- PKG_NAME_PARENT="${PKG_NAME%_flavour_*}";
- ex_pkg_env_source "${PKG_NAME_PARENT}";
- fi;
+ _tgt_name_uc _pkg_name_uc _pkg_name_inherit_uc \
+ _build_type_uc _vname_dst _vars_set="";
ex_rtl_fileop source_opt "vars/${_pkg_name}.vars";
_tgt_name_uc="$(ex_rtl_toupper "${_tgt_name}")";
_pkg_name_uc="$(ex_rtl_toupper "${_pkg_name}")";
@@ -17,12 +13,22 @@ exp_pkg_env_source() {
"DEFAULT ${_tgt_name_uc} PKG_${_pkg_name_uc}" \
_vars_set;
_build_type_uc="$(ex_rtl_toupper "${PKG_BUILD_TYPE}")";
+ ex_rtl_set_vars INHERIT_FROM "PKG_${_pkg_name_uc}" _vars_set;
+ _pkg_name_inherit_uc="$(ex_rtl_toupper "${PKG_INHERIT_FROM}")";
for _vname_dst in $(ex_rtl_lfilter_not \
"${DEFAULT_BUILD_VARS}" BUILD_TYPE); do
- ex_rtl_set_vars "${_vname_dst}" \
- "DEFAULT DEFAULT_${_build_type_uc} \
- ${_tgt_name_uc} PKG_${_pkg_name_uc}" \
- _vars_set;
+ if [ -n "${_pkg_name_inherit_uc}" ]; then
+ ex_rtl_set_vars "${_vname_dst}" \
+ "DEFAULT DEFAULT_${_build_type_uc} \
+ ${_tgt_name_uc} \
+ PKG_${_pkg_name_inherit_uc} \
+ PKG_${_pkg_name_uc}" _vars_set;
+ else
+ ex_rtl_set_vars "${_vname_dst}" \
+ "DEFAULT DEFAULT_${_build_type_uc} \
+ ${_tgt_name_uc} PKG_${_pkg_name_uc}" \
+ _vars_set;
+ fi;
done;
ex_rtl_unset_vars $(ex_rtl_lfilter_not \
"$(set | awk -F= '/^PKG_/{print $1}' | sort)" \