Add should_build_for_arch check
This commit is contained in:
1 file changed
+39
@@ -74,6 +74,31 @@ get_local_version() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Check if package should be built for current architecture
|
||||||
|
# Returns 0 (success) if should build, 1 if should skip
|
||||||
|
should_build_for_arch() {
|
||||||
|
local pkg="$1"
|
||||||
|
local current_arch="$ARCH"
|
||||||
|
local pkgbuild="/pkgbuilds/$pkg/PKGBUILD"
|
||||||
|
|
||||||
|
[[ ! -f "$pkgbuild" ]] && return 1
|
||||||
|
|
||||||
|
# Check PKGBUILD arch=() array
|
||||||
|
local pkgbuild_archs=$(cd "/pkgbuilds/$pkg" && bash -c 'source PKGBUILD 2>/dev/null; echo "${arch[@]}"')
|
||||||
|
|
||||||
|
# If arch=('any'), build for all architectures
|
||||||
|
if [[ "$pkgbuild_archs" == "any" ]]; then
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check if current arch is in PKGBUILD arch=()
|
||||||
|
if echo "$pkgbuild_archs" | grep -qw "$current_arch"; then
|
||||||
|
return 0 # Build
|
||||||
|
else
|
||||||
|
return 1 # Skip
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
# Build a package from /pkgbuilds/
|
# Build a package from /pkgbuilds/
|
||||||
build_package() {
|
build_package() {
|
||||||
local pkg="$1"
|
local pkg="$1"
|
||||||
@@ -245,6 +270,13 @@ if [[ -n "$PACKAGES" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Check if package should be built for this architecture
|
||||||
|
if ! should_build_for_arch "$pkg_name"; then
|
||||||
|
echo " ⊘ $pkg_name - not built for $ARCH"
|
||||||
|
SKIPPED_PACKAGES="$SKIPPED_PACKAGES $pkg_name"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
if check_needs_build "$pkg_name"; then
|
if check_needs_build "$pkg_name"; then
|
||||||
PACKAGES_TO_BUILD+=("$pkg_name")
|
PACKAGES_TO_BUILD+=("$pkg_name")
|
||||||
else
|
else
|
||||||
@@ -259,6 +291,13 @@ else
|
|||||||
pkg=$(basename "$pkgdir")
|
pkg=$(basename "$pkgdir")
|
||||||
[[ ! -f "$pkgdir/PKGBUILD" ]] && continue
|
[[ ! -f "$pkgdir/PKGBUILD" ]] && continue
|
||||||
|
|
||||||
|
# Check if package should be built for this architecture
|
||||||
|
if ! should_build_for_arch "$pkg"; then
|
||||||
|
echo " ⊘ $pkg - not built for $ARCH"
|
||||||
|
SKIPPED_PACKAGES="$SKIPPED_PACKAGES $pkg"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
if check_needs_build "$pkg"; then
|
if check_needs_build "$pkg"; then
|
||||||
PACKAGES_TO_BUILD+=("$pkg")
|
PACKAGES_TO_BUILD+=("$pkg")
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in new issue
Block a user