mirror of
https://github.com/ollama/ollama.git
synced 2026-03-27 02:58:43 +07:00
ci: fix windows cgo compiler error (#15046)
This commit is contained in:
7
.github/workflows/test.yaml
vendored
7
.github/workflows/test.yaml
vendored
@@ -64,6 +64,7 @@ jobs:
|
|||||||
container: nvidia/cuda:13.0.0-devel-ubuntu22.04
|
container: nvidia/cuda:13.0.0-devel-ubuntu22.04
|
||||||
extra-packages: libcudnn9-dev-cuda-13 libopenblas-dev liblapack-dev liblapacke-dev git curl
|
extra-packages: libcudnn9-dev-cuda-13 libopenblas-dev liblapack-dev liblapacke-dev git curl
|
||||||
flags: '-DCMAKE_CUDA_ARCHITECTURES=87 -DBLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu -DLAPACK_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu'
|
flags: '-DCMAKE_CUDA_ARCHITECTURES=87 -DBLAS_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu -DLAPACK_INCLUDE_DIRS=/usr/include/x86_64-linux-gnu'
|
||||||
|
install-go: true
|
||||||
runs-on: linux
|
runs-on: linux
|
||||||
container: ${{ matrix.container }}
|
container: ${{ matrix.container }}
|
||||||
steps:
|
steps:
|
||||||
@@ -90,6 +91,12 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
env:
|
env:
|
||||||
DEBIAN_FRONTEND: noninteractive
|
DEBIAN_FRONTEND: noninteractive
|
||||||
|
- if: matrix.install-go
|
||||||
|
name: Install Go
|
||||||
|
run: |
|
||||||
|
GO_VERSION=$(awk '/^go / { print $2 }' go.mod)
|
||||||
|
curl -fsSL "https://golang.org/dl/go${GO_VERSION}.linux-$(dpkg --print-architecture).tar.gz" | tar xz -C /usr/local
|
||||||
|
echo "/usr/local/go/bin" >> $GITHUB_PATH
|
||||||
- uses: actions/cache@v4
|
- uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: /github/home/.cache/ccache
|
path: /github/home/.cache/ccache
|
||||||
|
|||||||
@@ -101,12 +101,25 @@ file(COPY ${_mlx_c_hdrs} DESTINATION "${CMAKE_SOURCE_DIR}/x/mlxrunner/mlx/includ
|
|||||||
# Regenerate Go/C shim wrappers from the (possibly updated) headers.
|
# Regenerate Go/C shim wrappers from the (possibly updated) headers.
|
||||||
find_program(GO_EXECUTABLE go REQUIRED)
|
find_program(GO_EXECUTABLE go REQUIRED)
|
||||||
message(STATUS "Regenerating MLX Go wrappers")
|
message(STATUS "Regenerating MLX Go wrappers")
|
||||||
|
|
||||||
|
# Go's cgo splits CC on whitespace, so a CC like "C:/Program Files/…/cl.exe"
|
||||||
|
# (set by cmake on Windows) breaks with "C:/Program" not found. Clear CC
|
||||||
|
# when it contains spaces so cgo falls back to its default (gcc).
|
||||||
|
if(WIN32 AND "$ENV{CC}" MATCHES " ")
|
||||||
|
set(_SAVE_CC "$ENV{CC}")
|
||||||
|
set(ENV{CC} "")
|
||||||
|
endif()
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
COMMAND ${GO_EXECUTABLE} generate ./x/...
|
COMMAND ${GO_EXECUTABLE} generate ./x/...
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
||||||
COMMAND_ERROR_IS_FATAL ANY
|
COMMAND_ERROR_IS_FATAL ANY
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(DEFINED _SAVE_CC)
|
||||||
|
set(ENV{CC} "${_SAVE_CC}")
|
||||||
|
endif()
|
||||||
|
|
||||||
# For local dev builds, override MLX_VERSION with git describe output
|
# For local dev builds, override MLX_VERSION with git describe output
|
||||||
if(TARGET mlx_version AND DEFINED FETCHCONTENT_SOURCE_DIR_MLX)
|
if(TARGET mlx_version AND DEFINED FETCHCONTENT_SOURCE_DIR_MLX)
|
||||||
execute_process(
|
execute_process(
|
||||||
|
|||||||
Reference in New Issue
Block a user