47 lines
1.7 KiB
Bash
Executable File
47 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
. "$(dirname -- "$0")/setup-ohos-env.sh"
|
|
LIBMPV=$PREFIX/lib/libmpv.so.2.5.0
|
|
test -f "$LIBMPV" || { printf 'Missing libmpv: %s\n' "$LIBMPV" >&2; exit 1; }
|
|
|
|
archive_count=0
|
|
for archive in "$PREFIX"/lib/*.a; do
|
|
test -f "$archive" || continue
|
|
archive_count=$((archive_count + 1))
|
|
temp_dir=$(mktemp -d)
|
|
(
|
|
cd "$temp_dir"
|
|
"$AR" x "$archive"
|
|
object_count=$(find . -type f | wc -l | tr -d ' ')
|
|
machine_count=$(find . -type f -exec "$READELF" -h {} + 2>/dev/null | grep -c 'Machine:.*AArch64')
|
|
test "$object_count" -gt 0
|
|
test "$object_count" -eq "$machine_count" || {
|
|
printf 'Non-AArch64 archive member: %s (%s/%s)\n' "$archive" "$machine_count" "$object_count" >&2
|
|
exit 1
|
|
}
|
|
)
|
|
rm -r "$temp_dir"
|
|
done
|
|
test "$archive_count" -gt 0
|
|
|
|
if find "$PREFIX" -type f \( -name '*.pc' -o -name '*.cmake' -o -name '*.ninja' \) \
|
|
-exec grep -El '(^|[[:space:]])-[IL]/(opt/homebrew|usr/local)|\.dylib|[[:space:]]-framework[[:space:]]' {} + | grep -q .; then
|
|
printf 'Host library path found in target metadata\n' >&2
|
|
exit 1
|
|
fi
|
|
|
|
needed=$($READELF -d "$LIBMPV" | sed -n 's/.*Shared library: \[\([^]]*\)\].*/\1/p')
|
|
for library in $needed; do
|
|
case "$library" in
|
|
libc.so|libz.so|libnative_media_vdec.so|libnative_media_venc.so|libnative_media_codecbase.so|libnative_media_core.so|libnative_window.so) ;;
|
|
*) printf 'Unexpected dynamic dependency: %s\n' "$library" >&2; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
"$PROJECT_ROOT/scripts/verify-ohos-binary.sh" "$LIBMPV"
|
|
"$PROJECT_ROOT/scripts/verify-libmpv-symbols.sh" "$LIBMPV"
|
|
printf 'verified_archives=%s\n' "$archive_count"
|
|
printf 'dynamic_dependencies=%s\n' "$(printf '%s' "$needed" | tr '\n' ',')"
|