mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-11-13 14:51:12 +08:00
35 lines
1.6 KiB
Bash
35 lines
1.6 KiB
Bash
#!/usr/bin/env bash
|
|
# Pure helper for build.sh: decide whether the required ONNX Runtime static lib
|
|
# is already present in the version+platform-keyed user cache.
|
|
#
|
|
# $1 = ONNXRUNTIME_STATIC_PREFIX root holding the extracted ORT dirs
|
|
# $2 = ort_dir_prefix platform top-level dir prefix
|
|
# (see build.sh ort_static_lib_prefix)
|
|
# $3 = ort_version DeepDocORTVersion (internal/common/environments.go)
|
|
#
|
|
# Exits 0 (present) when at least one real base libonnxruntime*.a lives under a
|
|
# dir matching BOTH the target platform and the required version —
|
|
# */${ort_dir_prefix}${ort_version}*/lib/*.a — and 1 (missing) otherwise. This is
|
|
# the SAME dir check_onnxruntime_deps links, so a shared cache holding only an
|
|
# OLD version or a DIFFERENT platform's ORT is reported missing (and the
|
|
# controlled auto-downloader runs) instead of being silently treated as present
|
|
# and failing only at link time.
|
|
#
|
|
# The lib/ segment is required so a stray .a sitting in the prefix root (not
|
|
# under a versioned .../lib/ dir) is ignored. Provider-specific archives
|
|
# (*cuda*/*tensorrt*/*coreml*/*dml*/*migraphx*) are excluded, matching the
|
|
# link-time selection in check_onnxruntime_deps.
|
|
ragflow_ort_present() {
|
|
local prefix="$1" ort_dir_prefix="$2" ort_version="$3"
|
|
local f
|
|
while IFS= read -r f; do
|
|
case "$(basename "$f")" in
|
|
*cuda*|*tensorrt*|*coreml*|*dml*|*migraphx*) continue ;;
|
|
esac
|
|
case "$f" in
|
|
*/${ort_dir_prefix}${ort_version}*/lib/*.a) return 0 ;;
|
|
esac
|
|
done < <(find "$prefix" -type f -name '*.a' 2>/dev/null)
|
|
return 1
|
|
}
|