@@ -360,7 +360,12 @@ function in_array() {
360360function run_source_modules() {
361361 needed=($MODULES )
362362 declare -a processed
363- order=()
363+
364+ fn_deps=' .deps'
365+ fn_optional_deps=' .optional-deps'
366+
367+ > $fn_deps
368+ > $fn_optional_deps
364369
365370 while [ ${# needed[*]} -ne 0 ]; do
366371
@@ -379,12 +384,6 @@ function run_source_modules() {
379384 # add this module as done
380385 processed=( ${processed[@]} $module )
381386
382- # append our module at the end only if we are not exist yet
383- in_array $module " ${order[@]} "
384- if [ $? -eq 255 ]; then
385- order=( ${order[@]} $module )
386- fi
387-
388387 # read recipe
389388 debug " Read $module recipe"
390389 recipe=$RECIPES_PATH /$module /recipe.sh
@@ -397,33 +396,25 @@ function run_source_modules() {
397396 # append current module deps to the needed
398397 deps=$( echo \$ " {DEPS_$module [@]}" )
399398 eval deps=($deps )
399+ optional_deps=$( echo \$ " {DEPS_OPTIONAL_$module [@]}" )
400+ eval optional_deps=($optional_deps )
400401 if [ ${# deps[*]} -gt 0 ]; then
401402 debug " Module $module depend on" ${deps[@]}
402403 needed=( ${needed[@]} ${deps[@]} )
403-
404- # for every deps, check if it's already added to order
405- # if not, add the deps before ourself
406- debug " Dependency order is ${order[@]} (current)"
407- for dep in " ${deps[@]} " ; do
408- # debug "Check if $dep is in order"
409- in_array $dep " ${order[@]} "
410- if [ $? -eq 255 ]; then
411- # debug "missing $dep in order"
412- # deps not found in order
413- # add it before ourself
414- in_array $module " ${order[@]} "
415- index=$?
416- # debug "our $module index is $index"
417- order=(${order[@]: 0: $index } $dep ${order[@]: $index } )
418- # debug "new order is ${order[@]}"
419- fi
420- done
421- debug " Dependency order is ${order[@]} (computed)"
404+ echo $module ${deps[@]} >> $fn_deps
405+ else
406+ echo $module >> $fn_deps
407+ fi
408+ if [ ${# optional_deps[*]} -gt 0 ]; then
409+ echo $module ${optional_deps[@]} >> $fn_optional_deps
422410 fi
423411 done
424412
425- MODULES=" ${order[@]} "
426- info=" Modules changed to $MODULES "
413+ MODULES=" $( python tools/depsort.py --optional $fn_optional_deps < $fn_deps ) "
414+
415+ info " Modules changed to $MODULES "
416+
417+ exit 1
427418}
428419
429420function run_get_packages() {
0 commit comments