Fix CPU only builds

Go embed doesn't like when there's no matching files, so put
a dummy placeholder in to allow building without any GPU support
If no "server" library is found, it's safely ignored at runtime.
This commit is contained in:
Daniel Hiltgen 2024-01-03 16:08:34 -08:00
parent c7ea8f237e
commit ddbfa6fe31
2 changed files with 6 additions and 3 deletions

View File

@ -35,6 +35,9 @@ BUILD_DIR="gguf/build/linux/cpu"
build build
install install
# Placeholder to keep go embed happy until we start building dynamic CPU lib variants
touch ${BUILD_DIR}/lib/dummy.so
if [ -d /usr/local/cuda/lib64/ ]; then if [ -d /usr/local/cuda/lib64/ ]; then
echo "CUDA libraries detected - building dynamic CUDA library" echo "CUDA libraries detected - building dynamic CUDA library"
init_vars init_vars

View File

@ -147,9 +147,9 @@ func extractDynamicLibs(workDir, glob string) ([]string, error) {
if err != nil || len(files) == 0 { if err != nil || len(files) == 0 {
return nil, payloadMissing return nil, payloadMissing
} }
libs := make([]string, len(files)) libs := []string{}
for i, file := range files { for _, file := range files {
pathComps := strings.Split(file, "/") pathComps := strings.Split(file, "/")
if len(pathComps) != 7 { if len(pathComps) != 7 {
log.Printf("unexpected payload components: %v", pathComps) log.Printf("unexpected payload components: %v", pathComps)
@ -169,7 +169,7 @@ func extractDynamicLibs(workDir, glob string) ([]string, error) {
destFile := filepath.Join(targetDir, filepath.Base(file)) destFile := filepath.Join(targetDir, filepath.Base(file))
if strings.Contains(destFile, "server") { if strings.Contains(destFile, "server") {
libs[i] = destFile libs = append(libs, destFile)
} }
_, err = os.Stat(destFile) _, err = os.Stat(destFile)