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
|
for x in $(items config/git); do
|
||||||
./update trees -f "$x" || $err "$_xm: fetch $x"
|
./update trees -f "$x" || $err "$_xm: fetch $x"
|
||||||
done
|
singletree "$x" || x_ rm -Rf "src/$x/$x"
|
||||||
for x in config/*/build.list; do
|
|
||||||
[ -f "$x" ] && xp="${x#*/}" && xp="${xp%/*}"
|
|
||||||
[ ! -f "$x" ] || [ -L "$xp" ] || x_ rm -Rf "src/$xp/$xp"
|
|
||||||
done
|
done
|
||||||
rmgit .
|
rmgit .
|
||||||
}
|
}
|
||||||
|
|
|
@ -228,3 +228,13 @@ e()
|
||||||
eval "$estr"
|
eval "$estr"
|
||||||
printf "%s %s\n" "$1" "$es2" 1>&2
|
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%/*}"
|
remkdir "${tmpgit%/*}"
|
||||||
|
|
||||||
_cmd="build_projects"
|
_cmd="build_projects"
|
||||||
[ -f "config/$project/build.list" ] && _cmd="build_targets"
|
singletree "$project" || _cmd="build_targets"
|
||||||
$_cmd $@
|
$_cmd $@
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue