-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixes the bug 1196 #1232
Merged
mudler
merged 14 commits into
mudler:master
from
diego-minguzzi:fix_bug_1196_compilation_fails
Nov 6, 2023
Merged
Fixes the bug 1196 #1232
Changes from 8 commits
Commits
Show all changes
14 commits
Select commit
Hold shift + click to select a range
71ac3bc
Current state of the branch.
diego-minguzzi 0d307f2
Merge branch 'master' into fix_bug_1196_compilation_fails
diego-minguzzi 3d2cc83
Merge branch 'master' into fix_bug_1196_compilation_fails
lunamidori5 95ddf63
Merge branch 'master' into fix_bug_1196_compilation_fails
diego-minguzzi 0dd767f
Now gRPC is build only when the BUILD_GRPC_FOR_BACKEND_LLAMA variable…
diego-minguzzi 66b4ec7
Merge branch 'fix_bug_1196_compilation_fails' of github.com:diego-min…
diego-minguzzi 69a575c
Now the local compilation of gRPC is executed on BUILD_GRPC_FOR_BACKE…
diego-minguzzi be7f01f
Merge branch 'master' into fix_bug_1196_compilation_fails
diego-minguzzi d727959
Merge branch 'master' into fix_bug_1196_compilation_fails
diego-minguzzi d28406d
Revised the Makefile.
diego-minguzzi bee64bb
Merge branch 'fix_bug_1196_compilation_fails' of github.com:diego-min…
diego-minguzzi 347c90f
Removed replace directives in go.mod.
diego-minguzzi df5d564
Merge branch 'master' into fix_bug_1196_compilation_fails
mudler 46b9cb2
Merge branch 'master' into fix_bug_1196_compilation_fails
diego-minguzzi File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
installed_packages/ | ||
grpc_build/ | ||
grpc_repo/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
#!/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} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm wondering - here probably the best approach would be to use cmake directly.
I was reading initially https://github.com/grpc/grpc/tree/master/src/cpp#fetchcontent but leaving this for a follow-up, maybe you'd like to take a look first?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think that at least the bash-based solution allows people to build without docker, when the PR is approved.
Then, I can try to modify the gRPC installation using the CMake.
Does it sound good?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good!