don't use build.list to detect multi-tree projects
instead, check for the presence of target.cfg files not in config/project/ but config/project/tree/ the way this check is done, it merely returns 1 if config/project/*/target.cfg is detected, and returns 0 in all other cases, even if config/project/target.cfg exists that way, if the maintainer accidentally adds a target.cfg in the main directory, the given multi-tree project will not break Signed-off-by: Leah Rowe <leah@libreboot.org>20240612_branch
parent
6e1b8087c5
commit
bea089bbe4
5
build
5
build
|
@ -117,10 +117,7 @@ fetch_trees()
|
|||
{
|
||||
for x in $(items config/git); do
|
||||
./update trees -f "$x" || $err "$_xm: fetch $x"
|
||||
done
|
||||
for x in config/*/build.list; do
|
||||
[ -f "$x" ] && xp="${x#*/}" && xp="${xp%/*}"
|
||||
[ ! -f "$x" ] || [ -L "$xp" ] || x_ rm -Rf "src/$xp/$xp"
|
||||
singletree "$x" || x_ rm -Rf "src/$x/$x"
|
||||
done
|
||||
rmgit .
|
||||
}
|
||||
|
|
|
@ -228,3 +228,13 @@ e()
|
|||
eval "$estr"
|
||||
printf "%s %s\n" "$1" "$es2" 1>&2
|
||||
}
|
||||
|
||||
# return 0 if project is single-tree, otherwise 1
|
||||
# e.g. coreboot is multi-tree, so 1
|
||||
singletree()
|
||||
{
|
||||
for pdir in "config/${1}/"*/target.cfg; do
|
||||
[ ! -e "$pdir" ] && continue
|
||||
[ -f "$pdir" ] && return 1
|
||||
done
|
||||
}
|
||||
|
|
|
@ -39,7 +39,7 @@ main()
|
|||
remkdir "${tmpgit%/*}"
|
||||
|
||||
_cmd="build_projects"
|
||||
[ -f "config/$project/build.list" ] && _cmd="build_targets"
|
||||
singletree "$project" || _cmd="build_targets"
|
||||
$_cmd $@
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue