From 5e1c3feb538fbe4888dee9d3b96bba82f354a855 Mon Sep 17 00:00:00 2001 From: Achim Gsell Date: Tue, 10 Sep 2024 10:42:28 +0200 Subject: [PATCH] build-system: use_flags in YAML config file --- Pmodules/libpbuild.bash | 2 +- Pmodules/modbuild.in | 19 +++++++++---------- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Pmodules/libpbuild.bash b/Pmodules/libpbuild.bash index 6952a6a..d1ff481 100644 --- a/Pmodules/libpbuild.bash +++ b/Pmodules/libpbuild.bash @@ -328,7 +328,7 @@ readonly -f pbuild::version_eq #.............................................................................. # pbuild::use_flag() { - [[ "${USE_FLAGS}" == *:${1}:* ]] + [[ "${ModuleConfig['use_flags']}" =~ " ${1} " ]] } readonly -f pbuild::use_flag diff --git a/Pmodules/modbuild.in b/Pmodules/modbuild.in index 858301b..a962bbb 100644 --- a/Pmodules/modbuild.in +++ b/Pmodules/modbuild.in @@ -243,14 +243,6 @@ parse_args() { --check-mode ) opt_check_mode='yes' ;; - --use-flags | --use-flags=* ) - if [[ $1 == *=* ]]; then - USE_FLAGS=":${1#--*=}:" - else - USE_FLAGS=":$2:" - shift - fi - ;; --with | --with=*/* ) if [[ $1 == *=* ]]; then opt_with_modules+=( "${1#--*=}" ) @@ -457,13 +449,13 @@ init_module_environment(){ parse_version() { local v="$1" V="$1" - USE_FLAGS=${USE_FLAGS:-''} local tmp='' + SUFFIX='' if [[ "$v" =~ "_" ]]; then tmp="${v#*_}" - USE_FLAGS+=":${tmp//_/:}:" + SUFFIX+=":${tmp//_/:}:" v="${v%%_*}" fi V_PKG="${v%%-*}" # version without the release number @@ -545,6 +537,7 @@ declare -A Yaml_default_config=( ['sub_packages']='' # !!map ['target_cpus']='' # !!seq of strings ['urls']='' # !!map + ['use_flags']='' # !!seq ['use_overlays']='' # !!seq ['variant']='' # !!str ) @@ -773,6 +766,12 @@ build_modules_yaml_v1(){ pm::get_value "${yaml_input}" value "${key}" '!!map' cfg[${key,,}]="${value}" ;; + use_flags ) + pm::get_seq "${yaml_input}" value "${key}" + local -a tmp=() + readarray -t tmp <<<"${value}" + cfg[${key,,}]=" ${tmp[*]} " + ;; relstage ) pm::get_value "${yaml_input}" value "${key}" '!!str' case ${value,,} in