mirror of
https://github.com/mudler/LocalAI.git
synced 2025-04-28 06:49:54 +00:00
move BUILD_GRPC_FOR_BACKEND_LLAMA logic to makefile: errors in this section now immediately fail the build (#1576)
* move BUILD_GRPC_FOR_BACKEND_LLAMA option to makefile * review: oversight, fixup cmake_args Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com> Signed-off-by: Dionysius <1341084+dionysius@users.noreply.github.com> --------- Signed-off-by: Dionysius <1341084+dionysius@users.noreply.github.com> Co-authored-by: Ettore Di Giacinto <mudler@users.noreply.github.com>
This commit is contained in:
parent
cbe9a03e3c
commit
441e2965ff
6
Makefile
6
Makefile
@ -290,9 +290,7 @@ clean: ## Remove build related file
|
|||||||
rm -rf ./sources
|
rm -rf ./sources
|
||||||
rm -rf $(BINARY_NAME)
|
rm -rf $(BINARY_NAME)
|
||||||
rm -rf release/
|
rm -rf release/
|
||||||
rm -rf ./backend/cpp/grpc/grpc_repo
|
$(MAKE) -C backend/cpp/grpc clean
|
||||||
rm -rf ./backend/cpp/grpc/build
|
|
||||||
rm -rf ./backend/cpp/grpc/installed_packages
|
|
||||||
$(MAKE) -C backend/cpp/llama clean
|
$(MAKE) -C backend/cpp/llama clean
|
||||||
|
|
||||||
## Build:
|
## Build:
|
||||||
@ -467,7 +465,7 @@ ADDED_CMAKE_ARGS=-Dabsl_DIR=${INSTALLED_LIB_CMAKE}/absl \
|
|||||||
|
|
||||||
backend/cpp/llama/grpc-server:
|
backend/cpp/llama/grpc-server:
|
||||||
ifdef BUILD_GRPC_FOR_BACKEND_LLAMA
|
ifdef BUILD_GRPC_FOR_BACKEND_LLAMA
|
||||||
backend/cpp/grpc/script/build_grpc.sh ${INSTALLED_PACKAGES}
|
$(MAKE) -C backend/cpp/grpc build
|
||||||
export _PROTOBUF_PROTOC=${INSTALLED_PACKAGES}/bin/proto && \
|
export _PROTOBUF_PROTOC=${INSTALLED_PACKAGES}/bin/proto && \
|
||||||
export _GRPC_CPP_PLUGIN_EXECUTABLE=${INSTALLED_PACKAGES}/bin/grpc_cpp_plugin && \
|
export _GRPC_CPP_PLUGIN_EXECUTABLE=${INSTALLED_PACKAGES}/bin/grpc_cpp_plugin && \
|
||||||
export PATH="${PATH}:${INSTALLED_PACKAGES}/bin" && \
|
export PATH="${PATH}:${INSTALLED_PACKAGES}/bin" && \
|
||||||
|
66
backend/cpp/grpc/Makefile
Normal file
66
backend/cpp/grpc/Makefile
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
# Basic platform detection
|
||||||
|
HOST_SYSTEM = $(shell uname | cut -f 1 -d_)
|
||||||
|
SYSTEM ?= $(HOST_SYSTEM)
|
||||||
|
|
||||||
|
TAG_LIB_GRPC?=v1.59.0
|
||||||
|
GIT_REPO_LIB_GRPC?=https://github.com/grpc/grpc.git
|
||||||
|
GIT_CLONE_DEPTH?=1
|
||||||
|
NUM_BUILD_THREADS?=$(shell nproc --ignore=1)
|
||||||
|
|
||||||
|
INSTALLED_PACKAGES=installed_packages
|
||||||
|
GRPC_REPO=grpc_repo
|
||||||
|
GRPC_BUILD=grpc_build
|
||||||
|
|
||||||
|
export CMAKE_ARGS?=
|
||||||
|
CMAKE_ARGS+=-DCMAKE_BUILD_TYPE=Release
|
||||||
|
CMAKE_ARGS+=-DgRPC_INSTALL=ON
|
||||||
|
CMAKE_ARGS+=-DEXECUTABLE_OUTPUT_PATH=../$(INSTALLED_PACKAGES)/grpc/bin
|
||||||
|
CMAKE_ARGS+=-DLIBRARY_OUTPUT_PATH=../$(INSTALLED_PACKAGES)/grpc/lib
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_TESTS=OFF
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_CSHARP_EXT=OFF
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON
|
||||||
|
CMAKE_ARGS+=-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
|
||||||
|
CMAKE_ARGS+=-Dprotobuf_WITH_ZLIB=ON
|
||||||
|
CMAKE_ARGS+=-DRE2_BUILD_TESTING=OFF
|
||||||
|
CMAKE_ARGS+=-DCMAKE_INSTALL_PREFIX=../$(INSTALLED_PACKAGES)
|
||||||
|
|
||||||
|
# windows need to set OPENSSL_NO_ASM. Results in slower crypto performance but doesn't build otherwise.
|
||||||
|
# May be resolvable, but for now its set. More info: https://stackoverflow.com/a/75240504/480673
|
||||||
|
ifeq ($(SYSTEM),MSYS)
|
||||||
|
CMAKE_ARGS+=-DOPENSSL_NO_ASM=ON
|
||||||
|
endif
|
||||||
|
ifeq ($(SYSTEM),MINGW64)
|
||||||
|
CMAKE_ARGS+=-DOPENSSL_NO_ASM=ON
|
||||||
|
endif
|
||||||
|
ifeq ($(SYSTEM),MINGW32)
|
||||||
|
CMAKE_ARGS+=-DOPENSSL_NO_ASM=ON
|
||||||
|
endif
|
||||||
|
ifeq ($(SYSTEM),CYGWIN)
|
||||||
|
CMAKE_ARGS+=-DOPENSSL_NO_ASM=ON
|
||||||
|
endif
|
||||||
|
|
||||||
|
$(INSTALLED_PACKAGES): grpc_build
|
||||||
|
|
||||||
|
$(GRPC_REPO):
|
||||||
|
git clone --depth $(GIT_CLONE_DEPTH) -b $(TAG_LIB_GRPC) $(GIT_REPO_LIB_GRPC) $(GRPC_REPO)/grpc
|
||||||
|
cd $(GRPC_REPO)/grpc && git submodule update --init --recursive --depth $(GIT_CLONE_DEPTH)
|
||||||
|
|
||||||
|
$(GRPC_BUILD): $(GRPC_REPO)
|
||||||
|
mkdir -p $(GRPC_BUILD)
|
||||||
|
cd $(GRPC_BUILD) && cmake $(CMAKE_ARGS) ../$(GRPC_REPO)/grpc && cmake --build . -- -j ${NUM_BUILD_THREADS} && cmake --build . --target install -- -j ${NUM_BUILD_THREADS}
|
||||||
|
|
||||||
|
build: $(INSTALLED_PACKAGES)
|
||||||
|
|
||||||
|
rebuild:
|
||||||
|
rm -rf grpc_build
|
||||||
|
$(MAKE) grpc_build
|
||||||
|
|
||||||
|
clean:
|
||||||
|
rm -rf grpc_build
|
||||||
|
rm -rf grpc_repo
|
||||||
|
rm -rf installed_packages
|
@ -1,81 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Builds locally from sources the packages needed by the llama cpp backend.
|
|
||||||
|
|
||||||
# Makes sure a few base packages exist.
|
|
||||||
# sudo apt-get --no-upgrade -y install g++ gcc binutils cmake git build-essential autoconf libtool pkg-config
|
|
||||||
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
|
|
||||||
echo "Script directory: $SCRIPT_DIR"
|
|
||||||
|
|
||||||
CPP_INSTALLED_PACKAGES_DIR=$1
|
|
||||||
if [ -z ${CPP_INSTALLED_PACKAGES_DIR} ]; then
|
|
||||||
echo "CPP_INSTALLED_PACKAGES_DIR env variable not set. Don't know where to install: failed.";
|
|
||||||
echo
|
|
||||||
exit -1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d "${CPP_INSTALLED_PACKAGES_DIR}" ]; then
|
|
||||||
echo "gRPC installation directory already exists. Nothing to do."
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# The depth when cloning a git repo. 1 speeds up the clone when the repo history is not needed.
|
|
||||||
GIT_CLONE_DEPTH=1
|
|
||||||
|
|
||||||
NUM_BUILD_THREADS=$(nproc --ignore=1)
|
|
||||||
|
|
||||||
# Google gRPC --------------------------------------------------------------------------------------
|
|
||||||
TAG_LIB_GRPC="v1.59.0"
|
|
||||||
GIT_REPO_LIB_GRPC="https://github.com/grpc/grpc.git"
|
|
||||||
GRPC_REPO_DIR="${SCRIPT_DIR}/../grpc_repo"
|
|
||||||
GRPC_BUILD_DIR="${SCRIPT_DIR}/../grpc_build"
|
|
||||||
SRC_DIR_LIB_GRPC="${GRPC_REPO_DIR}/grpc"
|
|
||||||
|
|
||||||
echo "SRC_DIR_LIB_GRPC: ${SRC_DIR_LIB_GRPC}"
|
|
||||||
echo "GRPC_REPO_DIR: ${GRPC_REPO_DIR}"
|
|
||||||
echo "GRPC_BUILD_DIR: ${GRPC_BUILD_DIR}"
|
|
||||||
|
|
||||||
mkdir -pv ${GRPC_REPO_DIR}
|
|
||||||
|
|
||||||
rm -rf ${GRPC_BUILD_DIR}
|
|
||||||
mkdir -pv ${GRPC_BUILD_DIR}
|
|
||||||
|
|
||||||
mkdir -pv ${CPP_INSTALLED_PACKAGES_DIR}
|
|
||||||
|
|
||||||
if [ -d "${SRC_DIR_LIB_GRPC}" ]; then
|
|
||||||
echo "gRPC source already exists locally. Not cloned again."
|
|
||||||
else
|
|
||||||
( cd ${GRPC_REPO_DIR} && \
|
|
||||||
git clone --depth ${GIT_CLONE_DEPTH} -b ${TAG_LIB_GRPC} ${GIT_REPO_LIB_GRPC} && \
|
|
||||||
cd ${SRC_DIR_LIB_GRPC} && \
|
|
||||||
git submodule update --init --recursive --depth ${GIT_CLONE_DEPTH}
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
( cd ${GRPC_BUILD_DIR} && \
|
|
||||||
cmake -G "Unix Makefiles" \
|
|
||||||
-DCMAKE_BUILD_TYPE=Release \
|
|
||||||
-DgRPC_INSTALL=ON \
|
|
||||||
-DEXECUTABLE_OUTPUT_PATH=${CPP_INSTALLED_PACKAGES_DIR}/grpc/bin \
|
|
||||||
-DLIBRARY_OUTPUT_PATH=${CPP_INSTALLED_PACKAGES_DIR}/grpc/lib \
|
|
||||||
-DgRPC_BUILD_TESTS=OFF \
|
|
||||||
-DgRPC_BUILD_CSHARP_EXT=OFF \
|
|
||||||
-DgRPC_BUILD_GRPC_CPP_PLUGIN=ON \
|
|
||||||
-DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF \
|
|
||||||
-DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
|
|
||||||
-DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
|
|
||||||
-DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
|
|
||||||
-DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON \
|
|
||||||
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
|
|
||||||
-Dprotobuf_WITH_ZLIB=ON \
|
|
||||||
-DRE2_BUILD_TESTING=OFF \
|
|
||||||
-DCMAKE_INSTALL_PREFIX=${CPP_INSTALLED_PACKAGES_DIR}/ \
|
|
||||||
${SRC_DIR_LIB_GRPC} && \
|
|
||||||
cmake --build . -- -j ${NUM_BUILD_THREADS} && \
|
|
||||||
cmake --build . --target install -- -j ${NUM_BUILD_THREADS}
|
|
||||||
)
|
|
||||||
|
|
||||||
rm -rf ${GRPC_BUILD_DIR}
|
|
||||||
rm -rf ${GRPC_REPO_DIR}
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user