@@ -360,7 +360,12 @@ function in_array() {
360
360
function run_source_modules() {
361
361
needed=($MODULES )
362
362
declare -a processed
363
- order=()
363
+
364
+ fn_deps=' .deps'
365
+ fn_optional_deps=' .optional-deps'
366
+
367
+ > $fn_deps
368
+ > $fn_optional_deps
364
369
365
370
while [ ${# needed[*]} -ne 0 ]; do
366
371
@@ -379,12 +384,6 @@ function run_source_modules() {
379
384
# add this module as done
380
385
processed=( ${processed[@]} $module )
381
386
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
-
388
387
# read recipe
389
388
debug " Read $module recipe"
390
389
recipe=$RECIPES_PATH /$module /recipe.sh
@@ -397,33 +396,25 @@ function run_source_modules() {
397
396
# append current module deps to the needed
398
397
deps=$( echo \$ " {DEPS_$module [@]}" )
399
398
eval deps=($deps )
399
+ optional_deps=$( echo \$ " {DEPS_OPTIONAL_$module [@]}" )
400
+ eval optional_deps=($optional_deps )
400
401
if [ ${# deps[*]} -gt 0 ]; then
401
402
debug " Module $module depend on" ${deps[@]}
402
403
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
422
410
fi
423
411
done
424
412
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
427
418
}
428
419
429
420
function run_get_packages() {
0 commit comments