key: macOS-latest-cmake-arm64
evict-old-files: 1d
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
- brew install curl
-
- name: Build
id: cmake_build
run: |
cmake -B build \
-DCMAKE_BUILD_RPATH="@loader_path" \
-DLLAMA_FATAL_WARNINGS=ON \
+ -DLLAMA_CURL=OFF \
+ -DLLAMA_BUILD_BORINGSSL=ON \
-DGGML_METAL_USE_BF16=ON \
-DGGML_METAL_EMBED_LIBRARY=OFF \
-DGGML_METAL_SHADER_DEBUG=ON \
key: macOS-latest-cmake-x64
evict-old-files: 1d
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
- brew install curl
-
- name: Build
id: cmake_build
run: |
cmake -B build \
-DCMAKE_BUILD_RPATH="@loader_path" \
-DLLAMA_FATAL_WARNINGS=ON \
+ -DLLAMA_CURL=OFF \
+ -DLLAMA_BUILD_BORINGSSL=ON \
-DGGML_METAL=OFF \
-DGGML_RPC=ON \
-DCMAKE_OSX_DEPLOYMENT_TARGET=13.3
key: macOS-latest-cmake-arm64-webgpu
evict-old-files: 1d
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
- brew install curl
-
- name: Dawn Dependency
id: dawn-depends
run: |
key: macOS-latest-cmake-ios
evict-old-files: 1d
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
-
- name: Build
id: cmake_build
run: |
key: macOS-latest-cmake-tvos
evict-old-files: 1d
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
-
- name: Build
id: cmake_build
run: |
id: checkout
uses: actions/checkout@v4
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
-
- name: Build
id: cmake_build
run: |
name: llama-xcframework
path: build-apple/llama.xcframework/
- - name: Dependencies
- id: depends
- continue-on-error: true
- run: |
- brew update
-
- name: Build llama.cpp with CMake
id: cmake_build
run: |
-DCMAKE_INSTALL_PREFIX="$env:RUNNER_TEMP/opencl-arm64-release"
cmake --build build-arm64-release --target install --config release
- - name: libCURL
- id: get_libcurl
- uses: ./.github/actions/windows-setup-curl
- with:
- architecture: ${{ matrix.arch == 'x64' && 'win64' || 'win64a' }}
-
- name: Build
id: cmake_build
- env:
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
run: |
cmake -S . -B build ${{ matrix.defines }} `
- -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include"
+ -DLLAMA_CURL=OFF -DLLAMA_BUILD_BORINGSSL=ON
cmake --build build --config Release -j ${env:NUMBER_OF_PROCESSORS}
- cp $env:CURL_PATH/bin/libcurl-*.dll build/bin/Release
- name: Add libopenblas.dll
id: add_libopenblas_dll
run: |
choco install ninja
- - name: libCURL
- id: get_libcurl
- uses: ./.github/actions/windows-setup-curl
-
- name: Build
id: cmake_build
shell: cmd
- env:
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
run: |
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
cmake -S . -B build -G "Ninja Multi-Config" ^
-DLLAMA_BUILD_SERVER=ON ^
+ -DLLAMA_CURL=OFF ^
+ -DLLAMA_BUILD_BORINGSSL=ON ^
-DGGML_NATIVE=OFF ^
-DGGML_BACKEND_DL=ON ^
-DGGML_CPU_ALL_VARIANTS=ON ^
-DGGML_CUDA=ON ^
- -DGGML_RPC=ON ^
- -DCURL_LIBRARY="%CURL_PATH%/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="%CURL_PATH%/include"
+ -DGGML_RPC=ON
set /A NINJA_JOBS=%NUMBER_OF_PROCESSORS%-1
cmake --build build --config Release -j %NINJA_JOBS% -t ggml
cmake --build build --config Release
run: |
scripts/install-oneapi.bat $WINDOWS_BASEKIT_URL $WINDOWS_DPCPP_MKL
- # TODO: add libcurl support ; we will also need to modify win-build-sycl.bat to accept user-specified args
+ # TODO: add ssl support ; we will also need to modify win-build-sycl.bat to accept user-specified args
- name: Build
id: cmake_build
key: ${{ github.job }}
evict-old-files: 1d
- - name: libCURL
- id: get_libcurl
- uses: ./.github/actions/windows-setup-curl
-
- name: Build
id: cmake_build
- env:
- CURL_PATH: ${{ steps.get_libcurl.outputs.curl_path }}
run: |
$env:HIP_PATH=$(Resolve-Path 'C:\Program Files\AMD\ROCm\*\bin\clang.exe' | split-path | split-path)
$env:CMAKE_PREFIX_PATH="${env:HIP_PATH}"
-DCMAKE_CXX_COMPILER="${env:HIP_PATH}\bin\clang++.exe" `
-DCMAKE_CXX_FLAGS="-I$($PWD.Path.Replace('\', '/'))/opt/rocm-${{ env.ROCM_VERSION }}/include/" `
-DCMAKE_BUILD_TYPE=Release `
+ -DLLAMA_CURL=OFF `
+ -DLLAMA_BUILD_BORINGSSL=ON `
-DROCM_DIR="${env:HIP_PATH}" `
-DGGML_HIP=ON `
-DGGML_HIP_ROCWMMA_FATTN=ON `
- -DGGML_RPC=ON `
- -DCURL_LIBRARY="$env:CURL_PATH/lib/libcurl.dll.a" -DCURL_INCLUDE_DIR="$env:CURL_PATH/include"
+ -DGGML_RPC=ON
cmake --build build -j ${env:NUMBER_OF_PROCESSORS}
ios-xcode-build:
CPPHTTPLIB_TCP_NODELAY=1
)
-if (LLAMA_OPENSSL)
+if (LLAMA_BUILD_BORINGSSL)
+ set(OPENSSL_NO_ASM ON CACHE BOOL "Disable OpenSSL ASM code (BoringSSL)")
+ set(FIPS OFF CACHE BOOL "Enable FIPS (BoringSSL)")
+
+ set(BORINGSSL_GIT "https://boringssl.googlesource.com/boringssl" CACHE STRING "BoringSSL git repository")
+ set(BORINGSSL_VERSION "0.20251002.0" CACHE STRING "BoringSSL version")
+
+ message(STATUS "Fetching BoringSSL version ${BORINGSSL_VERSION}")
+
+ include(FetchContent)
+ FetchContent_Declare(
+ boringssl
+ GIT_REPOSITORY ${BORINGSSL_GIT}
+ GIT_TAG ${BORINGSSL_VERSION}
+ PATCH_COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_SOURCE_DIR}/patch-boringssl.cmake"
+ )
+
+ set(SAVED_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS})
+ set(SAVED_BUILD_TESTING ${BUILD_TESTING})
+
+ set(BUILD_SHARED_LIBS OFF)
+ set(BUILD_TESTING OFF)
+
+ FetchContent_MakeAvailable(boringssl)
+
+ set(BUILD_SHARED_LIBS ${SAVED_BUILD_SHARED_LIBS})
+ set(BUILD_TESTING ${SAVED_BUILD_TESTING})
+
+ set(CPPHTTPLIB_OPENSSL_SUPPORT TRUE)
+ target_link_libraries(${TARGET} PUBLIC ssl crypto)
+
+elseif (LLAMA_OPENSSL)
find_package(OpenSSL)
if (OpenSSL_FOUND)
include(CheckCSourceCompiles)
set(CMAKE_REQUIRED_INCLUDES ${SAVED_CMAKE_REQUIRED_INCLUDES})
if (OPENSSL_VERSION_SUPPORTED)
message(STATUS "OpenSSL found: ${OPENSSL_VERSION}")
- target_compile_definitions(${TARGET} PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT)
+ set(CPPHTTPLIB_OPENSSL_SUPPORT TRUE)
target_link_libraries(${TARGET} PUBLIC OpenSSL::SSL OpenSSL::Crypto)
- if (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- target_compile_definitions(${TARGET} PUBLIC CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN)
- find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation REQUIRED)
- find_library(SECURITY_FRAMEWORK Security REQUIRED)
- target_link_libraries(${TARGET} PUBLIC ${CORE_FOUNDATION_FRAMEWORK} ${SECURITY_FRAMEWORK})
- endif()
endif()
else()
message(STATUS "OpenSSL not found, SSL support disabled")
endif()
endif()
+if (CPPHTTPLIB_OPENSSL_SUPPORT)
+ target_compile_definitions(${TARGET} PUBLIC CPPHTTPLIB_OPENSSL_SUPPORT) # used in server.cpp
+ if (APPLE AND CMAKE_SYSTEM_NAME STREQUAL "Darwin")
+ target_compile_definitions(${TARGET} PRIVATE CPPHTTPLIB_USE_CERTS_FROM_MACOSX_KEYCHAIN)
+ find_library(CORE_FOUNDATION_FRAMEWORK CoreFoundation REQUIRED)
+ find_library(SECURITY_FRAMEWORK Security REQUIRED)
+ target_link_libraries(${TARGET} PUBLIC ${CORE_FOUNDATION_FRAMEWORK} ${SECURITY_FRAMEWORK})
+ endif()
+endif()