167 lines
5.7 KiB
Bash
167 lines
5.7 KiB
Bash
SUMMARY="A RPC library and framework"
|
|
DESCRIPTION="gRPC is a modern, open source, high-performance remote procedure \
|
|
call (RPC) framework that can run anywhere. gRPC enables client and server \
|
|
applications to communicate transparently, and simplifies the building of \
|
|
connected systems."
|
|
HOMEPAGE="https://grpc.io/"
|
|
COPYRIGHT="2015-2021 The gRPC Authors"
|
|
LICENSE="Apache v2"
|
|
REVISION="3"
|
|
SOURCE_URI="https://github.com/grpc/grpc/archive/v$portVersion/grpc-$portVersion.tar.gz"
|
|
CHECKSUM_SHA256="e5fb30aae1fa1cffa4ce00aa0bbfab908c0b899fcf0bbc30e268367d660d8656"
|
|
gtestCommit="c9ccac7cb7345901884aabf5d1a786cfa6e2f397"
|
|
SOURCE_URI_2="https://github.com/google/googletest/archive/$gtestCommit/googletest-$gtestCommit.tar.gz"
|
|
CHECKSUM_SHA256_2="443d383db648ebb8e391382c0ab63263b7091d03197f304390baac10f178a468"
|
|
SOURCE_DIR_2="googletest-$gtestCommit"
|
|
PATCHES="grpc-$portVersion.patchset"
|
|
|
|
ARCHITECTURES="all !x86_gcc2"
|
|
SECONDARY_ARCHITECTURES="x86"
|
|
|
|
libVersion="19.0.0"
|
|
libVersionCompat="$libVersion compat >= ${libVersion%%.*}"
|
|
|
|
PROVIDES="
|
|
grpc$secondaryArchSuffix = $portVersion
|
|
cmd:grpc_cpp_plugin
|
|
lib:libaddress_sorting$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgpr$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc_plugin_support$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc_unsecure$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc++$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc++_alts$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc++_error_details$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc++_reflection$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpc++_unsecure$secondaryArchSuffix = $libVersionCompat
|
|
lib:libgrpcpp_channelz$secondaryArchSuffix = $libVersionCompat
|
|
lib:libupb$secondaryArchSuffix = $libVersionCompat
|
|
"
|
|
REQUIRES="
|
|
haiku$secondaryArchSuffix
|
|
lib:libabsl_cord$secondaryArchSuffix
|
|
lib:libabsl_status$secondaryArchSuffix
|
|
lib:libabsl_strings$secondaryArchSuffix
|
|
lib:libabsl_synchronization$secondaryArchSuffix
|
|
lib:libabsl_time$secondaryArchSuffix
|
|
lib:libcares$secondaryArchSuffix
|
|
lib:libcrypto$secondaryArchSuffix
|
|
lib:libprotobuf$secondaryArchSuffix
|
|
lib:libprotoc$secondaryArchSuffix
|
|
lib:libre2$secondaryArchSuffix
|
|
lib:libssl$secondaryArchSuffix
|
|
lib:libz$secondaryArchSuffix
|
|
"
|
|
|
|
PROVIDES_devel="
|
|
grpc${secondaryArchSuffix}_devel = $portVersion
|
|
devel:libaddress_sorting$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgpr$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc_unsecure$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc++$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc++_alts$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc++_error_details$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc++_reflection$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpc++_unsecure$secondaryArchSuffix = $libVersionCompat
|
|
devel:libgrpcpp_channelz$secondaryArchSuffix = $libVersionCompat
|
|
devel:libupb$secondaryArchSuffix = $libVersionCompat
|
|
"
|
|
REQUIRES_devel="
|
|
grpc$secondaryArchSuffix == $portVersion base
|
|
devel:libabsl_cord$secondaryArchSuffix
|
|
devel:libabsl_status$secondaryArchSuffix
|
|
devel:libabsl_strings$secondaryArchSuffix
|
|
devel:libabsl_synchronization$secondaryArchSuffix
|
|
devel:libabsl_time$secondaryArchSuffix
|
|
devel:libcares$secondaryArchSuffix
|
|
devel:libprotobuf$secondaryArchSuffix
|
|
devel:libre2$secondaryArchSuffix
|
|
devel:libssl$secondaryArchSuffix
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
|
|
BUILD_REQUIRES="
|
|
haiku${secondaryArchSuffix}_devel
|
|
devel:libabsl_cord$secondaryArchSuffix
|
|
devel:libabsl_status$secondaryArchSuffix
|
|
devel:libabsl_strings$secondaryArchSuffix
|
|
devel:libabsl_synchronization$secondaryArchSuffix
|
|
devel:libabsl_time$secondaryArchSuffix
|
|
devel:libbenchmark$secondaryArchSuffix
|
|
devel:libcares$secondaryArchSuffix
|
|
devel:libprotobuf$secondaryArchSuffix
|
|
devel:libre2$secondaryArchSuffix
|
|
devel:libssl$secondaryArchSuffix
|
|
devel:libz$secondaryArchSuffix
|
|
"
|
|
BUILD_PREREQUIRES="
|
|
cmd:cmake
|
|
cmd:gcc$secondaryArchSuffix
|
|
cmd:make
|
|
cmd:ninja
|
|
cmd:pkg_config$secondaryArchSuffix
|
|
"
|
|
TEST_REQUIRES="
|
|
cmd:python2
|
|
cmd:python3
|
|
six_python3
|
|
"
|
|
|
|
BUILD()
|
|
{
|
|
ln -sf $sourceDir2/googlemock $sourceDir2/googletest \
|
|
third_party/googletest
|
|
cmake -Bbuild -S . \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=$prefix \
|
|
-DCMAKE_CXX_STANDARD=17 \
|
|
-DCMAKE_POSITION_INDEPENDENT_CODE=NO \
|
|
-DBUILD_SHARED_LIBS=ON \
|
|
-DgRPC_INSTALL_BINDIR=$relativeBinDir \
|
|
-DgRPC_INSTALL_INCLUDEDIR=$relativeIncludeDir \
|
|
-DgRPC_INSTALL_LIBDIR=$relativeLibDir \
|
|
-DgRPC_INSTALL_CMAKEDIR=$relativeLibDir/cmake/grpc \
|
|
-DgRPC_INSTALL_SHAREDIR=$relativeDataDir/grpc \
|
|
-DgRPC_ABSL_PROVIDER='package' \
|
|
-DgRPC_BENCHMARK_PROVIDER='package' \
|
|
-DgRPC_CARES_PROVIDER='package' \
|
|
-DgRPC_ZLIB_PROVIDER='package' \
|
|
-DgRPC_PROTOBUF_PROVIDER='package' \
|
|
-DgRPC_PROTOBUF_PACKAGE_TYPE='MODULE' \
|
|
-DgRPC_RE2_PROVIDER='package' \
|
|
-DgRPC_SSL_PROVIDER='package' \
|
|
-DgRPC_ZLIB_PROVIDER='package' \
|
|
-DgRPC_USE_PROTO_LITE=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=OFF \
|
|
-DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
|
|
-DgRPC_BUILD_TESTS=ON \
|
|
-GNinja
|
|
cmake --build build -v $jobArgs
|
|
}
|
|
|
|
INSTALL()
|
|
{
|
|
unset -f cmake
|
|
cmake --install build
|
|
|
|
prepareInstalledDevelLibs libaddress_sorting libgpr libgrpc \
|
|
libgrpc_unsecure libgrpc++ libgrpc++_alts libgrpc++_error_details \
|
|
libgrpc++_reflection libgrpc++_unsecure libgrpcpp_channelz libupb
|
|
fixPkgconfig
|
|
|
|
packageEntries devel \
|
|
"$developDir" \
|
|
"$libDir"/cmake
|
|
}
|
|
|
|
TEST()
|
|
{
|
|
python3 tools/run_tests/run_tests.py -l c++
|
|
}
|