mirror of
https://github.com/zebrajr/ollama.git
synced 2025-12-06 12:19:56 +01:00
Bring back v11 until we can better warn users that their driver
is too old.
This reverts commit fa393554b9.
57 lines
1.2 KiB
Go
57 lines
1.2 KiB
Go
package discover
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"runtime"
|
|
)
|
|
|
|
// LibPath is a path to lookup dynamic libraries
|
|
// in development it's usually 'build/lib/ollama'
|
|
// in distribution builds it's 'lib/ollama' on Windows
|
|
// '../lib/ollama' on Linux and the executable's directory on macOS
|
|
// note: distribution builds, additional GPU-specific libraries are
|
|
// found in subdirectories of the returned path, such as
|
|
// 'cuda_v11', 'cuda_v12', 'rocm', etc.
|
|
var LibOllamaPath string = func() string {
|
|
exe, err := os.Executable()
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
if eval, err := filepath.EvalSymlinks(exe); err == nil {
|
|
exe = eval
|
|
}
|
|
|
|
var libPath string
|
|
switch runtime.GOOS {
|
|
case "windows":
|
|
libPath = filepath.Join(filepath.Dir(exe), "lib", "ollama")
|
|
case "linux":
|
|
libPath = filepath.Join(filepath.Dir(exe), "..", "lib", "ollama")
|
|
case "darwin":
|
|
libPath = filepath.Dir(exe)
|
|
}
|
|
|
|
cwd, err := os.Getwd()
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
paths := []string{
|
|
libPath,
|
|
|
|
// build paths for development
|
|
filepath.Join(filepath.Dir(exe), "build", "lib", "ollama"),
|
|
filepath.Join(cwd, "build", "lib", "ollama"),
|
|
}
|
|
|
|
for _, p := range paths {
|
|
if _, err := os.Stat(p); err == nil {
|
|
return p
|
|
}
|
|
}
|
|
|
|
return filepath.Dir(exe)
|
|
}()
|