Files
wehub-resource-sync 9f97f3abbe
CI - Node Bindings / Build darwin-arm64 (push) Waiting to run
CI - Node Bindings / Build darwin-x64 (push) Waiting to run
CI - Node Bindings / Test win32-x64-msvc (push) Blocked by required conditions
CI - Node Bindings / Build linux-arm64-gnu (push) Waiting to run
CI - Node Bindings / Build linux-x64-gnu (push) Waiting to run
CI - Node Bindings / Build linux-x64-musl (push) Waiting to run
CI - Node Bindings / Build win32-arm64-msvc (push) Waiting to run
CI - Node Bindings / Build win32-x64-msvc (push) Waiting to run
CI - Node Bindings / Test darwin-arm64 (push) Blocked by required conditions
CI - Node Bindings / Test darwin-x64 (push) Blocked by required conditions
CI - Node Bindings / Test linux-x64-gnu (push) Blocked by required conditions
CI - Node Bindings / Test linux-x64-musl (push) Blocked by required conditions
CI - Node Bindings / Test win32-arm64-msvc (push) Blocked by required conditions
CI - Python Bindings / Build aarch64-pc-windows-msvc (push) Waiting to run
CI - Python Bindings / Build x86_64-pc-windows-msvc (push) Waiting to run
CI - Python Bindings / Build x86_64-apple-darwin (push) Waiting to run
CI - Python Bindings / Build aarch64-apple-darwin (push) Waiting to run
CI - Python Bindings / Build aarch64-unknown-linux-gnu (push) Waiting to run
CI - Python Bindings / Test x86_64-apple-darwin (push) Blocked by required conditions
CI - Python Bindings / Test aarch64-apple-darwin (push) Blocked by required conditions
CI - Python Bindings / Test x86_64-unknown-linux-gnu (push) Blocked by required conditions
CI - Python Bindings / Test x86_64-unknown-linux-musl (push) Blocked by required conditions
CI - Python Bindings / Test aarch64-pc-windows-msvc (push) Blocked by required conditions
CI - Python Bindings / Test x86_64-pc-windows-msvc (push) Blocked by required conditions
CI / build-and-test (macos-26-intel) (push) Waiting to run
CI / build-and-test (macos-latest) (push) Waiting to run
CI / build-and-test (windows-11-arm) (push) Waiting to run
CI / build-and-test (windows-latest) (push) Waiting to run
CI - Python Bindings / sdist (push) Failing after 1s
CI - Python Bindings / Build x86_64-unknown-linux-musl (push) Failing after 1s
CI / fmt (push) Failing after 1s
E2E Output Validation / compare-outputs (push) Failing after 1s
Sync Docs to Developer Hub / sync-docs (push) Failing after 1s
CI - Python Bindings / Build x86_64-unknown-linux-gnu (push) Failing after 1s
CI - WASM Bindings / Build WASM (push) Failing after 0s
CI / clippy (push) Failing after 1s
CI / build-and-test (ubuntu-latest) (push) Failing after 0s
CI - WASM Bindings / Edge runtime PDF parse test (push) Has been skipped
CI - WASM Bindings / Browser PDF parse test (push) Has been skipped
E2E Output Validation / upload-dataset (push) Waiting to run
Deploy Demo to GitHub Pages / deploy (push) Failing after 1s
CI / build-docker-image (push) Failing after 3s
chore: import upstream snapshot with attribution
2026-07-13 12:23:44 +08:00

78 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
#
# Copy the pdfium shared library into the liteparse package directory
# so it can be found at runtime via @loader_path (macOS) or $ORIGIN (Linux).
#
# Usage: ./scripts/copy-pdfium.sh
#
# The script auto-detects the pdfium library location from:
# 1. PDFIUM_LIB_PATH env var (set by CI or user)
# 2. The pdfium-sys build cache (~/.cache/pdfium-rs or ~/Library/Caches/pdfium-rs)
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
OUTPUT_DIR="${SCRIPT_DIR}/../liteparse"
# Determine OS and library filename
case "$(uname -s)" in
Darwin*) DYLIB="libpdfium.dylib" ;;
Linux*) DYLIB="libpdfium.so" ;;
MINGW*|MSYS*|CYGWIN*) DYLIB="pdfium.dll" ;;
*) echo "Unsupported OS: $(uname -s)" >&2; exit 1 ;;
esac
# Find the pdfium library
find_pdfium() {
# 1. Explicit env var
if [ -n "${PDFIUM_LIB_PATH:-}" ] && [ -f "${PDFIUM_LIB_PATH}/${DYLIB}" ]; then
echo "${PDFIUM_LIB_PATH}/${DYLIB}"
return
fi
# 2. Vendor directory
local vendor="${SCRIPT_DIR}/../../vendor/pdfium/release/lib/${DYLIB}"
if [ -f "$vendor" ]; then
echo "$vendor"
return
fi
# 3. Cargo build output (debug and release)
local workspace_root="${SCRIPT_DIR}/../../../.."
for profile in release debug; do
local deps="${workspace_root}/target/${profile}/deps/${DYLIB}"
if [ -f "$deps" ]; then
echo "$deps"
return
fi
done
# 4. Build cache
local cache_base
case "$(uname -s)" in
Darwin*) cache_base="$HOME/Library/Caches/pdfium-rs" ;;
*) cache_base="${XDG_CACHE_HOME:-$HOME/.cache}/pdfium-rs" ;;
esac
if [ -d "$cache_base" ]; then
local found
found=$(find "$cache_base" -name "$DYLIB" -type f 2>/dev/null | head -1)
if [ -n "$found" ]; then
echo "$found"
return
fi
fi
echo ""
}
PDFIUM_PATH=$(find_pdfium)
if [ -z "$PDFIUM_PATH" ]; then
echo "Error: Could not find ${DYLIB}. Set PDFIUM_LIB_PATH to the directory containing it." >&2
exit 1
fi
cp "$PDFIUM_PATH" "${OUTPUT_DIR}/${DYLIB}"
echo "Copied ${PDFIUM_PATH} -> ${OUTPUT_DIR}/${DYLIB}"