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
78 lines
2.1 KiB
Bash
Executable File
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}"
|