# Contributor: Holger Jaekel # Maintainer: Holger Jaekel pkgname=google-cloud-cpp pkgver=2.9.1 _googleapis_commit_sha="c0b5730937e56047dc11900463ff87be7c80e8cc" pkgrel=0 pkgdesc="C++ Client Libraries for Google Cloud Services" url="https://cloud.google.com/sdk" arch="all" license="Apache-2.0" makedepends=" abseil-cpp-dev c-ares-dev cmake crc32c-dev curl-dev grpc-dev nlohmann-json openssl-dev protobuf-dev re2-dev samurai " checkdepends="benchmark-dev gtest-dev" subpackages="$pkgname-dev" source="google-cloud-cpp-$pkgver.tar.gz::https://github.com/googleapis/google-cloud-cpp/archive/refs/tags/v$pkgver.tar.gz https://github.com/googleapis/googleapis/archive/$_googleapis_commit_sha.tar.gz " _ga_library=" accessapproval accesscontextmanager advisorynotifications alloydb apigateway apigeeconnect appengine artifactregistry asset assuredworkloads automl baremetalsolution beyondcorp bigquery bigtable billing binaryauthorization certificatemanager channel cloudbuild composer connectors contactcenterinsights containeranalysis container datacatalog datamigration dataplex dataproc datastream debugger deploy dialogflow_cx dialogflow_es dlp documentai edgecontainer eventarc filestore functions gameservices gkehub gkemulticloud iam iap ids iot kms language logging managedidentities memcache monitoring networkconnectivity networkmanagement notebooks optimization orgpolicy osconfig oslogin policytroubleshooter privateca profiler pubsub recommender redis resourcemanager resourcesettings retail run scheduler secretmanager securitycenter servicecontrol servicedirectory servicemanagement serviceusage shell spanner speech storagetransfer storage talent tasks texttospeech tpu trace translate videointelligence video vision vmmigration vmwareengine vpcaccess webrisk websecurityscanner workflows " _non_ga_library=" apikeys batch-protos batch cloud-bigquery-protos cloud-common-common-protos cloud-dialogflow-v2-protos cloud-speech-protos cloud-texttospeech-protos devtools-cloudtrace-v2-trace-protos devtools-cloudtrace-v2-tracing-protos devtools-source-v1-source-context-protos grafeas-protos grpc-utils longrunning-operations-protos rest-internal rest-protobuf-internal rpc-code-protos rpc-error-details-protos rpc-status-protos " _api_protos=" api-annotations api-auth api-backend api-billing api-client api-config-change api-consumer api-context api-control api-distribution api-documentation api-endpoint api-error-reason api-field-behavior api-httpbody api-http api-label api-launch-stage api-logging api-log api-metric api-monitored-resource api-monitoring api-quota api-resource api-routing api-service api-source-info api-system-parameter api-usage api-visibility " _type_protos=" type-calendar-period type-color type-datetime type-date type-dayofweek type-decimal type-expr type-fraction type-interval type-latlng type-localized-text type-money type-month type-phone-number type-postal-address type-quaternion type-timeofday " for _lib in $_ga_library $_non_ga_library $_api_protos $_type_protos ; do subpackages="$subpackages $pkgname-$_lib:library" done prepare() { default_prepare # google-cloud-cpp needs the proto and gRPC definitions for most # Google Cloud services. By default these definitions are downloaded # from GitHub during the build process. Using the same SHA is the # recommended practice when the googleapis are downloaded outside the # build process. In this APKBUILD, we download the googleapis as an # additional source. In that case we have to make sure that the SHA # match. local sha256=$(awk '/_GOOGLE_CLOUD_CPP_GOOGLEAPIS_SHA256/ { getline; print $0 }' $builddir/cmake/GoogleapisConfig.cmake | tr -d '") ') echo "$sha256 *$srcdir/$_googleapis_commit_sha.tar.gz" | sha256sum -c - } build() { if [ "$CBUILD" != "$CHOST" ]; then CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux" fi cmake -B build -G Ninja \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_LIBDIR=lib \ -DBUILD_SHARED_LIBS=True \ -DCMAKE_BUILD_TYPE=None \ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \ -DGOOGLE_CLOUD_CPP_ENABLE_EXAMPLES=OFF \ -DGOOGLE_CLOUD_CPP_ENABLE=__ga_libraries__ \ -DGOOGLE_CLOUD_CPP_OVERRIDE_GOOGLEAPIS_URL=$srcdir/googleapis-$_googleapis_commit_sha \ $CMAKE_CROSSOPTS . cmake --build build } check() { cd build CTEST_OUTPUT_ON_FAILURE=TRUE ctest -LE "integration-test" } package() { DESTDIR="$pkgdir" cmake --install build } library() { local name=${subpkgname#"$pkgname"-} pkgdesc="$pkgdesc ($name)" amove usr/lib/libgoogle_cloud_cpp_${name//-/_}* } sha512sums=" 07a2e1d43ba91448cb71053c304d9924d952adc3138f015e84900b94abf41f75c8067650729030233e0b41a457ebf4f0c85fb14b85c7bddeb220100065442125 google-cloud-cpp-2.9.1.tar.gz c2ec423a98014c6ec39142cf159fb0650f25f06e142791193107c258610795a0fe97d34f27307722a45e0815cb7b91b698c56183d15cd1a0afcb20660f80fda9 c0b5730937e56047dc11900463ff87be7c80e8cc.tar.gz "