termux-packages/packages/libgrpc/build.sh

61 lines
2.1 KiB
Bash
Raw Normal View History

2017-07-16 18:21:22 +02:00
TERMUX_PKG_HOMEPAGE=https://grpc.io/
2017-07-11 11:50:43 +02:00
TERMUX_PKG_DESCRIPTION="High performance, open source, general RPC framework that puts mobile and HTTP/2 first"
2019-01-21 13:53:58 +01:00
TERMUX_PKG_LICENSE="Apache-2.0"
TERMUX_PKG_MAINTAINER="@termux"
TERMUX_PKG_SRCURL=https://github.com/grpc/grpc.git
2022-02-20 20:25:12 +01:00
TERMUX_PKG_VERSION=1.44.0
TERMUX_PKG_REVISION=2
2022-02-20 20:25:12 +01:00
TERMUX_PKG_DEPENDS="ca-certificates, libc++, libre2, openssl, protobuf, c-ares, zlib"
TERMUX_PKG_BREAKS="libgrpc-dev"
TERMUX_PKG_REPLACES="libgrpc-dev"
TERMUX_PKG_BUILD_DEPENDS="gflags, gflags-static, libprotobuf"
2017-07-11 11:50:43 +02:00
TERMUX_PKG_HOSTBUILD=true
TERMUX_PKG_BUILD_IN_SRC=true
2017-07-11 11:50:43 +02:00
TERMUX_PKG_EXTRA_CONFIGURE_ARGS="
-DCMAKE_STRIP=$(command -v strip)
-DGIT_EXECUTABLE=$(command -v git)
2018-05-25 12:43:31 +02:00
-DBUILD_SHARED_LIBS=ON
2017-07-11 11:50:43 +02:00
-DgRPC_CARES_PROVIDER=package
-DgRPC_PROTOBUF_PROVIDER=package
-DgRPC_SSL_PROVIDER=package
2022-02-20 20:25:12 +01:00
-DgRPC_RE2_PROVIDER=package
2017-07-11 11:50:43 +02:00
-DgRPC_ZLIB_PROVIDER=package
-DgRPC_GFLAGS_PROVIDER=package
2018-05-25 12:43:31 +02:00
-DRUN_HAVE_POSIX_REGEX=0
-DRUN_HAVE_STD_REGEX=0
-DRUN_HAVE_STEADY_CLOCK=0
-DProtobuf_PROTOC_LIBRARY=$TERMUX_PREFIX/lib/libprotoc.so
2017-07-11 11:50:43 +02:00
"
termux_step_post_get_source() {
2019-05-12 00:08:10 +02:00
termux_setup_protobuf
2018-05-25 12:43:31 +02:00
}
termux_step_host_build() {
termux_setup_cmake
termux_setup_ninja
2018-05-25 12:43:31 +02:00
cd $TERMUX_PKG_SRCDIR
export LD=gcc
export LDXX=g++
# -Wno-error=class-memaccess is used to avoid
# src/core/lib/security/credentials/oauth2/oauth2_credentials.cc:336:61: error: void* memset(void*, int, size_t) clearing an object of non-trivial type struct grpc_oauth2_token_fetcher_credentials; use assignment or value-initialization instead [-Werror=class-memaccess]
# memset(c, 0, sizeof(grpc_oauth2_token_fetcher_credentials));
2019-02-03 22:43:46 +01:00
# when building version 1.17.2:
2019-02-07 16:41:57 +01:00
CXXFLAGS="-Wno-error=class-memaccess" \
CFLAGS="-Wno-implicit-fallthrough" \
cmake -G Ninja -DCMAKE_INSTALL_PREFIX=$TERMUX_PKG_HOSTBUILD_DIR
ninja -j $TERMUX_MAKE_PROCESSES install
ninja -t clean
rm -rf CMakeCache.txt CMakeFiles
2017-07-11 11:50:43 +02:00
}
2018-05-25 12:43:31 +02:00
termux_step_pre_configure() {
2022-02-20 20:25:12 +01:00
export PATH=$TERMUX_PKG_HOSTBUILD_DIR/bin:$PATH
2018-05-25 12:43:31 +02:00
sed "s|@PATH_TO_PLUGIN@|$TERMUX_PKG_HOSTBUILD_DIR/bin/grpc_cpp_plugin|g" \
$TERMUX_PKG_BUILDER_DIR/CMakeLists.txt.diff \
| patch -p1
2017-07-11 11:50:43 +02:00
export GRPC_CROSS_COMPILE=true
}