diff options
Diffstat (limited to 'subr/ex_pkg_env.subr')
-rw-r--r-- | subr/ex_pkg_env.subr | 26 |
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)" \ |