mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Add host protoc script back (#159157)
Following comment from https://github.com/pytorch/pytorch/pull/158475#issuecomment-3116518904 Also this is a fake issue as protoc is dead anyways: https://github.com/pytorch/pytorch/issues/159156 Also also, macos cross compilation is not something that is tested :/ But I guess we're ok with that given how niche it it... Pull Request resolved: https://github.com/pytorch/pytorch/pull/159157 Approved by: https://github.com/janeyx99
This commit is contained in:
59
scripts/build_host_protoc.sh
Normal file
59
scripts/build_host_protoc.sh
Normal file
@ -0,0 +1,59 @@
|
||||
#!/bin/bash
|
||||
##############################################################################
|
||||
# Build script to build the protoc compiler for the host platform.
|
||||
##############################################################################
|
||||
# This script builds the protoc compiler for the host platform, which is needed
|
||||
# for any cross-compilation as we will need to convert the protobuf source
|
||||
# files to cc files.
|
||||
#
|
||||
# --other-flags accepts flags that should be passed to cmake. Optional.
|
||||
#
|
||||
# After the execution of the file, one should be able to find the host protoc
|
||||
# binary at build_host_protoc/bin/protoc.
|
||||
|
||||
set -e
|
||||
|
||||
CAFFE2_ROOT="$( cd "$(dirname -- "$0")"/.. ; pwd -P)"
|
||||
BUILD_ROOT=${BUILD_ROOT:-"$CAFFE2_ROOT/build_host_protoc"}
|
||||
mkdir -p $BUILD_ROOT/build
|
||||
cd $BUILD_ROOT/build
|
||||
|
||||
CMAKE_ARGS=()
|
||||
CMAKE_ARGS+=("-DCMAKE_INSTALL_PREFIX=$BUILD_ROOT")
|
||||
CMAKE_ARGS+=("-Dprotobuf_BUILD_TESTS=OFF")
|
||||
|
||||
# If Ninja is installed, prefer it to Make
|
||||
if [ -x "$(command -v ninja)" ]; then
|
||||
CMAKE_ARGS+=("-GNinja")
|
||||
fi
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
--other-flags)
|
||||
shift;
|
||||
CMAKE_ARGS+=("$@")
|
||||
break ;;
|
||||
"")
|
||||
break ;;
|
||||
*)
|
||||
echo "Unknown option passed as argument: $1"
|
||||
break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# Use ccache if available (this path is where Homebrew installs ccache symlinks)
|
||||
if [ "$(uname)" == 'Darwin' ] && [ -d /usr/local/opt/ccache/libexec ]; then
|
||||
CMAKE_ARGS+=("-DCMAKE_C_COMPILER=/usr/local/opt/ccache/libexec/gcc")
|
||||
CMAKE_ARGS+=("-DCMAKE_CXX_COMPILER=/usr/local/opt/ccache/libexec/g++")
|
||||
fi
|
||||
|
||||
cmake "$CAFFE2_ROOT/third_party/protobuf/cmake" ${CMAKE_ARGS[@]}
|
||||
|
||||
if [ -z "$MAX_JOBS" ]; then
|
||||
if [ "$(uname)" == 'Darwin' ]; then
|
||||
MAX_JOBS=$(sysctl -n hw.ncpu)
|
||||
else
|
||||
MAX_JOBS=$(nproc)
|
||||
fi
|
||||
fi
|
||||
cmake --build . -- "-j${MAX_JOBS}" install
|
Reference in New Issue
Block a user