From f4633ecb636710ee1741a7c745829ab2ad082241 Mon Sep 17 00:00:00 2001 From: gsell Date: Thu, 29 Aug 2024 15:10:31 +0200 Subject: [PATCH] Merge branch '341-build-system-load-required-overlays-to-build-a-module' into 'master' Resolve "build-system: load required overlays to build a module" Closes #341 See merge request Pmodules/src!329 (cherry picked from commit 7ea8fa11ce234adc8180e2140bce8134d2a058c6) c2f7733c build-system: load required overlays for building a module Co-authored-by: gsell --- Pmodules/libpbuild.bash | 6 ++++++ Pmodules/modbuild.in | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/Pmodules/libpbuild.bash b/Pmodules/libpbuild.bash index 3052cf3..7c144f8 100644 --- a/Pmodules/libpbuild.bash +++ b/Pmodules/libpbuild.bash @@ -946,12 +946,14 @@ readonly -f pbuild.build_module_legacy declare -n Config declare -a Systems +declare -a UseOverlays pbuild.build_module_yaml(){ local -- module_name="$1" local -- module_version="$2" Config="$3" local -- module_relstage="${Config['relstage']}" readarray -t Systems <<< "${Config['systems']}" + readarray -t UseOverlays <<< "${Config['use_overlays']}" shift 3 _build_module "${module_name}" "${module_version}" "${module_relstage}" "$@" } @@ -983,6 +985,10 @@ _build_module() { [[ :${LOADEDMODULES}: =~ :$1: ]] } + load_overlays(){ + eval "$( "${modulecmd}" bash use "${Config['use_overlays']}" )" + } + #...................................................................... # # Load build- and run-time dependencies. diff --git a/Pmodules/modbuild.in b/Pmodules/modbuild.in index 7db3abe..8a64b79 100644 --- a/Pmodules/modbuild.in +++ b/Pmodules/modbuild.in @@ -535,6 +535,7 @@ declare -A Yaml_default_config=( ['sub_packages']='' # !!map ['target_cpus']='' # !!seq of strings ['urls']='' # !!map + ['use_overlays']='' # !!seq ['variant']='' # !!str ) @@ -679,7 +680,7 @@ build_modules_yaml_v1(){ pm::get_value "${yaml_input}" value "${key}" '!!seq' cfg[${key,,}]="${value}" ;; - build_requires|configure_args|docfiles|patch_files|runtime_deps|systems|variant ) + build_requires|configure_args|docfiles|patch_files|runtime_deps|systems|use_overlays|variant ) pm::get_seq "${yaml_input}" value "${key}" cfg[${key,,}]="${value}" ;;