summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRonan <ronan.lemartret@iot.bzh>2016-11-01 14:24:33 +0100
committerJan-Simon Moeller <jsmoeller@linuxfoundation.org>2016-11-08 23:28:33 +0000
commit6247b67fe5b879e6ecae670ad6135029b5078198 (patch)
tree81265bc51f287f1acb92a5bbab4f528609f4a576
parent784f5e886ec4bce0ea300f15e79c7efdf1d338c8 (diff)
allow dependency between agl feature
* you can add included.inc file for each feature * if features is include into an other feature, they are print during the --help command #source meta-agl/scripts/aglsetup.sh -h ... Available features: [meta-agl] agl-all-features :( agl-demo agl-appfw-smack agl-devel agl-netboot agl-sota ) agl-archiver agl-devel agl-isafw agl-netboot [meta-agl-devel] agl-renesas-kernel [meta-agl-extra] agl-appfw-smack agl-demo :( agl-appfw-smack agl-devel) Change-Id: I4a72abd48f70a9262203acba84fac24d9dd4dce0 Signed-off-by: Ronan <ronan.lemartret@iot.bzh>
-rwxr-xr-xscripts/.aglsetup_genconfig.bash49
-rw-r--r--templates/feature/agl-all-features/included.dep1
-rw-r--r--templates/feature/agl-all-features/included.inc1
3 files changed, 41 insertions, 10 deletions
diff --git a/scripts/.aglsetup_genconfig.bash b/scripts/.aglsetup_genconfig.bash
index e73facd11..285ecee50 100755
--- a/scripts/.aglsetup_genconfig.bash
+++ b/scripts/.aglsetup_genconfig.bash
@@ -172,8 +172,13 @@ EOF
buf=$(list_features $x)
[[ -z "$buf" ]] && continue
echo " [$x]"
- for y in $buf; do
- echo " $y"
+ for feature in $buf; do
+ print_feature="$feature"
+ featuredir=$(find_feature_dir $feature)
+ if [ -e $featuredir/included.dep ];then
+ print_feature="$print_feature :($(find_feature_dependency $feature $feature))"
+ fi;
+ echo " $print_feature"
done
done
echo >&2
@@ -211,6 +216,7 @@ function execute_setup() {
return $rc
}
+
# process all fragments
FRAGMENTS_BBLAYERS=""
FRAGMENTS_LOCALCONF=""
@@ -241,6 +247,31 @@ function process_fragments() {
done
}
+function containsFeature () {
+ for feature in $1; do
+ [[ "$feature" == "$2" ]] && return 1;
+ done;
+ return 0;
+}
+
+function find_feature_dependency() {
+ res_dep_features=""
+ featuredir=$(find_feature_dir $1)
+ full_feature=$2;
+ if [ -e $featuredir/included.dep ]; then
+ dep_features="$(cat $featuredir/included.dep)"
+ for dep_feature in $dep_features; do
+ full_feature="$full_feature $res_dep_features"
+ res_dep_features="$res_dep_features $dep_feature"
+ if containsFeature $dep_feature $full_feature ; then
+ res_dep_features="$res_dep_features $(find_feature_dependency $dep_feature $full_feature)"
+ fi;
+ done;
+ fi;
+ echo "$res_dep_features";
+ return 0;
+}
+
GLOBAL_ARGS=( "$@" )
debug "Parsing arguments: $@"
TEMP=$(getopt -o m:b:s:fvdh --long machine:,builddir:,script:,force,verbose,debug,help -n $SCRIPT -- "$@")
@@ -288,13 +319,13 @@ find_machine_dir $MACHINE >/dev/null || error "Machine '$MACHINE' not found in [
debug "validating features list"
validate_features
-if $(echo "$FEATURES" | grep -q 'agl-all-features' 2>&1 ) ; then
- featuredir=$(find_feature_dir agl-all-features)
- tmpfeatures="$FEATURES $(cat $featuredir/included.inc)"
- tmpfeatures_uniq="$(echo $tmpfeatures | sed -e 's/agl-all-features//g' -e 's/ / /g' | sort -u )"
- export FEATURES=$tmpfeatures_uniq
- echo "Features used: $FEATURES"
-fi
+TMP_FEATURES="";
+for FEATURE in $FEATURES;do
+ TMP_FEATURES="$TMP_FEATURES $FEATURE"
+ TMP_FEATURES="$TMP_FEATURES $(find_feature_dependency $FEATURE $TMP_FEATURES)"
+done
+FEATURES=$TMP_FEATURES
+echo "Features used: $FEATURES"
# validate the features
for f in $FEATURES; do
diff --git a/templates/feature/agl-all-features/included.dep b/templates/feature/agl-all-features/included.dep
new file mode 100644
index 000000000..1ed6763e7
--- /dev/null
+++ b/templates/feature/agl-all-features/included.dep
@@ -0,0 +1 @@
+agl-demo agl-netboot agl-sota
diff --git a/templates/feature/agl-all-features/included.inc b/templates/feature/agl-all-features/included.inc
deleted file mode 100644
index 4d528e4f4..000000000
--- a/templates/feature/agl-all-features/included.inc
+++ /dev/null
@@ -1 +0,0 @@
-agl-demo agl-devel agl-netboot agl-sota agl-appfw-smack \ No newline at end of file