summaryrefslogtreecommitdiff
path: root/net-libs/google-cloud-cpp
diff options
context:
space:
mode:
authorPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
committerPalica <palica+gitlab@liguros.net>2020-06-23 22:35:08 +0200
commitecdac123787b96ce6649f0f91da12ea6458cc2b1 (patch)
treeb89c74d9e6fe6e8aebc4c77bcbeb4ab73214127d /net-libs/google-cloud-cpp
parent1be72aa41cf41dedadeecf59dca9f01de6381f5e (diff)
downloadbaldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.gz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.tar.xz
baldeagleos-repo-ecdac123787b96ce6649f0f91da12ea6458cc2b1.zip
Updating liguros repo
Diffstat (limited to 'net-libs/google-cloud-cpp')
-rw-r--r--net-libs/google-cloud-cpp/Manifest8
-rw-r--r--net-libs/google-cloud-cpp/files/0001-Make-the-install-target-work.patch12
-rw-r--r--net-libs/google-cloud-cpp/files/0001-cmake-Fix-GOOGLE_CLOUD_CPP_GRPC_PROVIDER-pkg-config.patch33
-rw-r--r--net-libs/google-cloud-cpp/files/0002-cmake-set-library-soversions.patch130
-rw-r--r--net-libs/google-cloud-cpp/files/google-cloud-cpp-0.5.0-openssl.patch13
-rw-r--r--net-libs/google-cloud-cpp/files/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch15
-rw-r--r--net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0-r1.ebuild60
-rw-r--r--net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0.ebuild60
-rw-r--r--net-libs/google-cloud-cpp/google-cloud-cpp-0.2.0-r1.ebuild63
-rw-r--r--net-libs/google-cloud-cpp/google-cloud-cpp-0.5.0.ebuild65
-rw-r--r--net-libs/google-cloud-cpp/google-cloud-cpp-0.9.0.ebuild60
-rw-r--r--net-libs/google-cloud-cpp/metadata.xml12
12 files changed, 531 insertions, 0 deletions
diff --git a/net-libs/google-cloud-cpp/Manifest b/net-libs/google-cloud-cpp/Manifest
new file mode 100644
index 000000000000..144c9ba8b13b
--- /dev/null
+++ b/net-libs/google-cloud-cpp/Manifest
@@ -0,0 +1,8 @@
+DIST google-cloud-cpp-0.10.0.tar.gz 2189161 BLAKE2B 1e599478db3f280cddc4232c7e6005c7b5a48b1f22aecc8a99dc60f461dad349d343b40e6545680e7b211ea40a07c9b069052c2a6e36cb7279e400cdebfa95a3 SHA512 9a1774dcc39d1626c8a9cf8630fe3b3110df7e21e452c7b137e1911d10b304997571aadff5fc0216715729db4a29621066a5236a0b2cb027bba4ce3c56492fb3
+DIST google-cloud-cpp-0.2.0.tar.gz 687020 BLAKE2B 45c09c7cb5b9cc93c87e6d1faedf04f29ae81196dda95660abeadeaaf522376b4e50fd42489476c081e8de7336202d3883ab276c0e2334f1ad1b0e4e1f90fdb8 SHA512 ded3b564ef264a8bff4d81b08f2a97462e063127bf75a006bc7b18d18cfaee2f3cbe5957fe2c56cec06da5a7765854444fad8cd5045579c416c5f3de8462382e
+DIST google-cloud-cpp-0.5.0.tar.gz 1050893 BLAKE2B 6e96e2ca3f518f3c417d9d395001a42182aaeacdbbcfedc636387dbccedf5e570367bc66e5b3fecbe53d5b61e51b53709b83da90718826ac643fb2c43c1723c6 SHA512 48c5f4828bc85ae2c4bfe52b5bb51ff5da6a4cd6759f819aefaf9c23d7fffeb0a10390274f0e83f030f66f59a364c05583240e426143073187f104345e0b05d5
+DIST google-cloud-cpp-0.9.0.tar.gz 2209532 BLAKE2B 33b297d4836cf171833a4481b567d22f44aacdb0afd5422ec7da7f3c47fc1284a4a7723e306508c7dc7cc595166f040abe00a92eed58a07dfed77b94f99e9889 SHA512 b62051b9396efe8af8063d28ac958524b762a90c053f82030834bd38f018f0755487f6b39ceb5a0082d7cbf8784854c4effd81de27633086857330dc9bda182b
+DIST googleapis-6a3277c0656219174ff7c345f31fb20a90b30b97.tar.gz 746503 BLAKE2B c0cba88c19c658ba7e9e65b80557903f8ded280d25438120b32f8c29a714b58a527c9218f0f73b53646949ecc073d873fee712b370b95523bdea5c28747eeb25 SHA512 92795397dfb9a6aa931be7b191ee91f9f2678a7175dea6babf19a50f61923373d288832cf10edf1ff252ca5148fe649c1bf95535e7c21513129495afae4c0ff7
+DIST googleapis-79ab27f3b70ebc221e265d2e8ab30a8cc2d21fa2.tar.gz 874997 BLAKE2B c837323124d26364c83dba72d4f73f3147ad117468b271e8d9502991c1f9a7b20d4f5405351147b65e99c57d207a2b8c1471228d2060ad238ade5159be1b009e SHA512 774e56fc30a4daf2e88d8d3b6747c1ac369d016e9d52527565b88d93252a22597339c17e612304f8823867da4b6df4b58a42dc9d4d480fc59962ee5314a85ab8
+DIST nlohmann-json-3.1.2-json.hpp 595822 BLAKE2B 510278344a510a516606f84aea53c682a64a7d1f4703e41503a1688e7c62ab1df8f197a697bd1149e958d21ab986d1b42cb78db6261b07239d9587756813acf5 SHA512 05df0ad3338f0bca885c0aa9da523922b99016986a9b01426b13888c0febd83bf1f6f063886f6c75f8a656ef79abac6292fe442dc05b1897d546ba5b70be48a5
+DIST nlohmann-json-3.4.0-json.hpp 705920 BLAKE2B 9a22a6420f818038d8c4b352fb92ff0f0041b76232ef8665686399d184cfc62caffb60b4ccf1d8d33ae428839a70fece959f94795d71803623405d041efc9a13 SHA512 a1bdb4b434ee34cbc360e0203f500b25e15d7e1a6d25ea6e3bd3b56a5e7ec47d8c0bbe074930b7a07d6ceaf2112eefa24da9c1f0595aaf12c88697048238166d
diff --git a/net-libs/google-cloud-cpp/files/0001-Make-the-install-target-work.patch b/net-libs/google-cloud-cpp/files/0001-Make-the-install-target-work.patch
new file mode 100644
index 000000000000..f84cb4be3c27
--- /dev/null
+++ b/net-libs/google-cloud-cpp/files/0001-Make-the-install-target-work.patch
@@ -0,0 +1,12 @@
+diff -ur google-cloud-cpp-0.2.0.orig/google/cloud/storage/CMakeLists.txt google-cloud-cpp-0.2.0/google/cloud/storage/CMakeLists.txt
+--- google-cloud-cpp-0.2.0.orig/google/cloud/storage/CMakeLists.txt 2018-09-28 00:39:41.170482472 +0800
++++ google-cloud-cpp-0.2.0/google/cloud/storage/CMakeLists.txt 2018-09-28 00:42:09.679979597 +0800
+@@ -321,7 +321,7 @@
+ PATTERN "testing/*"
+ EXCLUDE)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/version_info.h DESTINATION
+- include/storage/client)
++ include/google/cloud/storage)
+
+ # Setup global variables used in the following *.in files.
+ set(GOOGLE_CLOUD_CPP_CONFIG_VERSION_MAJOR ${STORAGE_CLIENT_VERSION_MAJOR})
diff --git a/net-libs/google-cloud-cpp/files/0001-cmake-Fix-GOOGLE_CLOUD_CPP_GRPC_PROVIDER-pkg-config.patch b/net-libs/google-cloud-cpp/files/0001-cmake-Fix-GOOGLE_CLOUD_CPP_GRPC_PROVIDER-pkg-config.patch
new file mode 100644
index 000000000000..a1b9a166ea3c
--- /dev/null
+++ b/net-libs/google-cloud-cpp/files/0001-cmake-Fix-GOOGLE_CLOUD_CPP_GRPC_PROVIDER-pkg-config.patch
@@ -0,0 +1,33 @@
+From ef34b197dd23833c0dde9ea20f62681dbafa7a9b Mon Sep 17 00:00:00 2001
+From: Jason Zaman <jason@perfinion.com>
+Date: Fri, 7 Sep 2018 21:19:11 +0800
+Subject: [PATCH 1/2] cmake: Fix GOOGLE_CLOUD_CPP_GRPC_PROVIDER=pkg-config
+
+The grpc_cpp_plugin executable needs to be marked imported otherwise
+cmake will try (and fail) to build it. Also the location variable was
+typo'd.
+
+Signed-off-by: Jason Zaman <jason@perfinion.com>
+---
+ cmake/IncludeGrpc.cmake | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/cmake/IncludeGrpc.cmake b/cmake/IncludeGrpc.cmake
+index 36dcfe5c..c18f5cbc 100644
+--- a/cmake/IncludeGrpc.cmake
++++ b/cmake/IncludeGrpc.cmake
+@@ -225,9 +225,8 @@ elseif("${GOOGLE_CLOUD_CPP_GRPC_PROVIDER}" STREQUAL "pkg-config")
+ ${PROTOBUF_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Release
+ ${PROTOBUF_SRC_ROOT_FOLDER}/vsprojects/${_PROTOBUF_ARCH_DIR}Debug)
+ mark_as_advanced(PROTOC_GRPCPP_PLUGIN_EXECUTABLE)
+- add_executable(grpc_cpp_plugin ${PROTOC_GRPC_PLUGIN_EXECUTABLE})
++ add_executable(grpc_cpp_plugin IMPORTED)
+ set_property(TARGET grpc_cpp_plugin
+- PROPERTY IMPORTED_LOCATION
+- ${PROTOC_GRPCPP_CPP_PLUGIN_EXECUTABLE})
++ PROPERTY IMPORTED_LOCATION ${PROTOC_GRPCPP_PLUGIN_EXECUTABLE})
+
+ endif ()
+--
+2.16.4
+
diff --git a/net-libs/google-cloud-cpp/files/0002-cmake-set-library-soversions.patch b/net-libs/google-cloud-cpp/files/0002-cmake-set-library-soversions.patch
new file mode 100644
index 000000000000..74a57711ed63
--- /dev/null
+++ b/net-libs/google-cloud-cpp/files/0002-cmake-set-library-soversions.patch
@@ -0,0 +1,130 @@
+From b1d6f58033be92661f91b221b878e333eb02fd7f Mon Sep 17 00:00:00 2001
+From: Jason Zaman <jason@perfinion.com>
+Date: Fri, 7 Sep 2018 22:35:24 +0800
+Subject: [PATCH 2/2] cmake: set library soversions
+
+Set library soversions so CMake sets the symlinks and soversions
+properly. Install the cmake files in the correct dir.
+
+Signed-off-by: Jason Zaman <jason@perfinion.com>
+---
+ google/cloud/CMakeLists.txt | 7 +++++++
+ google/cloud/bigtable/CMakeLists.txt | 14 ++++++++++++++
+ google/cloud/firestore/CMakeLists.txt | 12 ++++++++++--
+ google/cloud/storage/CMakeLists.txt | 9 ++++++++-
+ 4 files changed, 39 insertions(+), 3 deletions(-)
+
+diff --git a/google/cloud/CMakeLists.txt b/google/cloud/CMakeLists.txt
+index 3f3f8742..442f4e17 100644
+--- a/google/cloud/CMakeLists.txt
++++ b/google/cloud/CMakeLists.txt
+@@ -98,6 +98,13 @@ target_include_directories(google_cloud_cpp_common
+ $<INSTALL_INTERFACE:include>)
+ target_compile_options(google_cloud_cpp_common
+ PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
++set_target_properties(
++ google_cloud_cpp_common
++ PROPERTIES
++ VERSION
++ ${GOOGLE_CLOUD_CPP_VERSION_MAJOR}.${GOOGLE_CLOUD_CPP_VERSION_MINOR}.${GOOGLE_CLOUD_CPP_VERSION_PATCH}
++ SOVERSION
++ ${GOOGLE_CLOUD_CPP_VERSION_MAJOR})
+
+ include(CreateBazelConfig)
+ create_bazel_config(google_cloud_cpp_common)
+diff --git a/google/cloud/bigtable/CMakeLists.txt b/google/cloud/bigtable/CMakeLists.txt
+index 9ed778eb..fd9c8797 100644
+--- a/google/cloud/bigtable/CMakeLists.txt
++++ b/google/cloud/bigtable/CMakeLists.txt
+@@ -102,6 +102,13 @@ target_include_directories(bigtable_protos
+ $<INSTALL_INTERFACE:include>)
+ target_compile_options(bigtable_protos
+ PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
++set_target_properties(
++ bigtable_protos
++ PROPERTIES
++ VERSION
++ ${BIGTABLE_CLIENT_VERSION_MAJOR}.${BIGTABLE_CLIENT_VERSION_MINOR}.${BIGTABLE_CLIENT_VERSION_PATCH}
++ SOVERSION
++ ${BIGTABLE_CLIENT_VERSION_MAJOR})
+ add_library(bigtable::protos ALIAS bigtable_protos)
+
+ # Enable unit tests
+@@ -206,6 +213,13 @@ target_include_directories(bigtable_client
+ $<INSTALL_INTERFACE:include>)
+ target_compile_options(bigtable_client
+ PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
++set_target_properties(
++ bigtable_client
++ PROPERTIES
++ VERSION
++ ${BIGTABLE_CLIENT_VERSION_MAJOR}.${BIGTABLE_CLIENT_VERSION_MINOR}.${BIGTABLE_CLIENT_VERSION_PATCH}
++ SOVERSION
++ ${BIGTABLE_CLIENT_VERSION_MAJOR})
+ add_library(bigtable::client ALIAS bigtable_client)
+
+ include(CreateBazelConfig)
+diff --git a/google/cloud/firestore/CMakeLists.txt b/google/cloud/firestore/CMakeLists.txt
+index 88c5ad6d..c69e48fd 100644
+--- a/google/cloud/firestore/CMakeLists.txt
++++ b/google/cloud/firestore/CMakeLists.txt
+@@ -62,6 +62,13 @@ target_include_directories(firestore_client
+ $<INSTALL_INTERFACE:include>)
+ target_compile_options(firestore_client
+ PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
++set_target_properties(
++ firestore_client
++ PROPERTIES
++ VERSION
++ ${FIRESTORE_CLIENT_VERSION_MAJOR}.${FIRESTORE_CLIENT_VERSION_MINOR}.${FIRESTORE_CLIENT_VERSION_PATCH}
++ SOVERSION
++ ${FIRESTORE_CLIENT_VERSION_MAJOR})
+ add_library(firestore::client ALIAS firestore_client)
+
+ include(CreateBazelConfig)
+@@ -104,7 +111,8 @@ install(TARGETS
+
+ # The exports can only be installed if all the dependencies are installed. CMake
+ # needs to know where the submodules will be installed from,
+-install(EXPORT firestore-targets DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
++install(EXPORT firestore-targets
++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/firestore_client")
+
+ install(TARGETS firestore_client
+ EXPORT firestore-targets
+@@ -142,4 +150,4 @@ install(
+ FILES "${CMAKE_CURRENT_BINARY_DIR}/firestore_client-config.cmake"
+ "${CMAKE_CURRENT_BINARY_DIR}/firestore_client-config-version.cmake"
+ DESTINATION
+- ${CMAKE_INSTALL_DATAROOTDIR}/cmake)
++ "${CMAKE_INSTALL_LIBDIR}/cmake/firestore_client")
+diff --git a/google/cloud/storage/CMakeLists.txt b/google/cloud/storage/CMakeLists.txt
+index cef3954b..912391cc 100644
+--- a/google/cloud/storage/CMakeLists.txt
++++ b/google/cloud/storage/CMakeLists.txt
+@@ -205,6 +205,13 @@ target_include_directories(storage_client
+ $<INSTALL_INTERFACE:include>)
+ target_compile_options(storage_client
+ PUBLIC ${GOOGLE_CLOUD_CPP_EXCEPTIONS_FLAG})
++set_target_properties(
++ storage_client
++ PROPERTIES
++ VERSION
++ ${STORAGE_CLIENT_VERSION_MAJOR}.${STORAGE_CLIENT_VERSION_MINOR}.${STORAGE_CLIENT_VERSION_PATCH}
++ SOVERSION
++ ${STORAGE_CLIENT_VERSION_MAJOR})
+
+ add_library(storage_client_testing
+ testing/canonical_errors.h
+@@ -315,7 +322,7 @@ install(TARGETS storage_client
+ RUNTIME DESTINATION bin
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+-install(DIRECTORY . DESTINATION include/storage/client
++install(DIRECTORY . DESTINATION include/google/cloud/storage/client
+ FILES_MATCHING
+ PATTERN "*.h"
+ PATTERN "testing/*"
+--
+2.16.4
+
diff --git a/net-libs/google-cloud-cpp/files/google-cloud-cpp-0.5.0-openssl.patch b/net-libs/google-cloud-cpp/files/google-cloud-cpp-0.5.0-openssl.patch
new file mode 100644
index 000000000000..a5579909e8ab
--- /dev/null
+++ b/net-libs/google-cloud-cpp/files/google-cloud-cpp-0.5.0-openssl.patch
@@ -0,0 +1,13 @@
+diff -ur google-cloud-cpp-0.5.0.orig/google/cloud/storage/CMakeLists.txt google-cloud-cpp-0.5.0/google/cloud/storage/CMakeLists.txt
+--- google-cloud-cpp-0.5.0.orig/google/cloud/storage/CMakeLists.txt 2019-01-30 14:01:05.657031402 +0800
++++ google-cloud-cpp-0.5.0/google/cloud/storage/CMakeLists.txt 2019-01-30 14:01:19.969968164 +0800
+@@ -215,9 +215,6 @@
+ Crc32c::crc32c
+ CURL::CURL
+ Threads::Threads
+- OpenSSL::SSL
+- OpenSSL::Crypto
+- ZLIB::ZLIB
+ PRIVATE storage_common_options)
+ target_include_directories(storage_client
+ PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
diff --git a/net-libs/google-cloud-cpp/files/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch b/net-libs/google-cloud-cpp/files/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch
new file mode 100644
index 000000000000..b528647311eb
--- /dev/null
+++ b/net-libs/google-cloud-cpp/files/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch
@@ -0,0 +1,15 @@
+diff --git a/cmake/DownloadNlohmannJson.cmake b/cmake/DownloadNlohmannJson.cmake
+index 1db953bed..4bbbe35fa 100644
+--- a/cmake/DownloadNlohmannJson.cmake
++++ b/cmake/DownloadNlohmannJson.cmake
+@@ -37,6 +37,10 @@ function (_download_json_hpp)
+ execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep
+ "${sleep_seconds}")
+ endif ()
++ if (EXISTS "${DEST}/json.hpp")
++ set(download_error_code 0)
++ break()
++ endif ()
+ file(DOWNLOAD "${JSON_URL}" "${DEST}/json.hpp" STATUS download_status)
+ list(GET download_status 0 download_error_code)
+ if (download_error_code EQUAL 0)
diff --git a/net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0-r1.ebuild b/net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0-r1.ebuild
new file mode 100644
index 000000000000..b1fb2095c0c3
--- /dev/null
+++ b/net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+JSON_VER="3.4.0"
+GOOGLEAPIS_COMMIT="6a3277c0656219174ff7c345f31fb20a90b30b97"
+
+DESCRIPTION="Google Cloud Client Library for C++"
+HOMEPAGE="https://cloud.google.com/"
+SRC_URI="https://github.com/GoogleCloudPlatform/google-cloud-cpp/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/nlohmann/json/releases/download/v${JSON_VER}/json.hpp -> nlohmann-json-${JSON_VER}-json.hpp
+ https://github.com/googleapis/googleapis/archive/${GOOGLEAPIS_COMMIT}.tar.gz -> googleapis-${GOOGLEAPIS_COMMIT}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="test"
+RDEPEND="dev-libs/protobuf:=
+ dev-libs/crc32c
+ dev-libs/openssl:=
+ net-misc/curl
+ net-libs/grpc:="
+DEPEND="${RDEPEND}
+ dev-cpp/gtest"
+
+DOCS=( README.md )
+PATCHES=(
+ "${FILESDIR}/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGOOGLE_CLOUD_CPP_DEPENDENCY_PROVIDER=package
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_TESTING=OFF
+ )
+
+ cmake-utils_src_configure
+
+ mkdir -p "${BUILD_DIR}/external/nlohmann_json/src/" || die
+ cp "${DISTDIR}/nlohmann-json-${JSON_VER}-json.hpp" "${BUILD_DIR}/external/nlohmann_json/src/json.hpp" || die
+
+ mkdir -p "${BUILD_DIR}/external/googleapis/src/" || die
+ cp "${DISTDIR}/googleapis-${GOOGLEAPIS_COMMIT}.tar.gz" \
+ "${BUILD_DIR}/external/googleapis/src/${GOOGLEAPIS_COMMIT}.tar.gz" || die
+}
+
+src_test() {
+ # test fails
+ local myctestargs=(
+ -E internal_parse_rfc3339_test
+ )
+
+ cmake-utils_src_test
+}
diff --git a/net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0.ebuild b/net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0.ebuild
new file mode 100644
index 000000000000..0575f7a04ab0
--- /dev/null
+++ b/net-libs/google-cloud-cpp/google-cloud-cpp-0.10.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+JSON_VER="3.4.0"
+GOOGLEAPIS_COMMIT="6a3277c0656219174ff7c345f31fb20a90b30b97"
+
+DESCRIPTION="Google Cloud Client Library for C++"
+HOMEPAGE="https://cloud.google.com/"
+SRC_URI="https://github.com/GoogleCloudPlatform/google-cloud-cpp/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/nlohmann/json/releases/download/v${JSON_VER}/json.hpp -> nlohmann-json-${JSON_VER}-json.hpp
+ https://github.com/googleapis/googleapis/archive/${GOOGLEAPIS_COMMIT}.tar.gz -> googleapis-${GOOGLEAPIS_COMMIT}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="test"
+RDEPEND="dev-libs/protobuf:=
+ dev-libs/crc32c
+ net-misc/curl
+ net-libs/grpc:="
+DEPEND="${RDEPEND}
+ dev-cpp/gtest"
+
+DOCS=( README.md )
+PATCHES=(
+ "${FILESDIR}/google-cloud-cpp-0.5.0-openssl.patch"
+ "${FILESDIR}/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGOOGLE_CLOUD_CPP_DEPENDENCY_PROVIDER=package
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_TESTING=OFF
+ )
+
+ cmake-utils_src_configure
+
+ mkdir -p "${BUILD_DIR}/external/nlohmann_json/src/" || die
+ cp "${DISTDIR}/nlohmann-json-${JSON_VER}-json.hpp" "${BUILD_DIR}/external/nlohmann_json/src/json.hpp" || die
+
+ mkdir -p "${BUILD_DIR}/external/googleapis/src/" || die
+ cp "${DISTDIR}/googleapis-${GOOGLEAPIS_COMMIT}.tar.gz" \
+ "${BUILD_DIR}/external/googleapis/src/${GOOGLEAPIS_COMMIT}.tar.gz" || die
+}
+
+src_test() {
+ # test fails
+ local myctestargs=(
+ -E internal_parse_rfc3339_test
+ )
+
+ cmake-utils_src_test
+}
diff --git a/net-libs/google-cloud-cpp/google-cloud-cpp-0.2.0-r1.ebuild b/net-libs/google-cloud-cpp/google-cloud-cpp-0.2.0-r1.ebuild
new file mode 100644
index 000000000000..fe66dc867def
--- /dev/null
+++ b/net-libs/google-cloud-cpp/google-cloud-cpp-0.2.0-r1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+JSON_VER="3.1.2"
+GOOGLEAPIS_COMMIT="79ab27f3b70ebc221e265d2e8ab30a8cc2d21fa2"
+
+DESCRIPTION="Google Cloud Client Library for C++"
+HOMEPAGE="https://cloud.google.com/"
+SRC_URI="https://github.com/GoogleCloudPlatform/google-cloud-cpp/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/nlohmann/json/releases/download/v${JSON_VER}/json.hpp -> nlohmann-json-${JSON_VER}-json.hpp
+ https://github.com/googleapis/googleapis/archive/${GOOGLEAPIS_COMMIT}.tar.gz -> googleapis-${GOOGLEAPIS_COMMIT}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-libs/protobuf:=
+ net-misc/curl
+ net-libs/grpc"
+DEPEND="${RDEPEND}
+ dev-cpp/gtest"
+
+DOCS=( README.md )
+PATCHES=(
+ "${FILESDIR}/0001-Make-the-install-target-work.patch"
+ "${FILESDIR}/0001-cmake-Fix-GOOGLE_CLOUD_CPP_GRPC_PROVIDER-pkg-config.patch"
+ "${FILESDIR}/0002-cmake-set-library-soversions.patch"
+)
+
+src_prepare() {
+ rm -rf "${S}/third_party/googleapis/" || die
+ mv "${WORKDIR}/googleapis-${GOOGLEAPIS_COMMIT}/" "${S}/third_party/googleapis/" || die
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DGOOGLE_CLOUD_CPP_GMOCK_PROVIDER=package
+ -DGOOGLE_CLOUD_CPP_GRPC_PROVIDER=pkg-config
+ -DBUILD_SHARED_LIBS=ON
+ )
+
+ cmake-utils_src_configure
+
+ mkdir -p "${BUILD_DIR}/external/nlohmann_json/src/" || die
+ cp "${DISTDIR}/nlohmann-json-${JSON_VER}-json.hpp" "${BUILD_DIR}/external/nlohmann_json/src/json.hpp" || die
+}
+
+src_test() {
+ # test fails
+ local myctestargs=(
+ -E internal_parse_rfc3339_test
+ )
+
+ cmake-utils_src_test
+}
diff --git a/net-libs/google-cloud-cpp/google-cloud-cpp-0.5.0.ebuild b/net-libs/google-cloud-cpp/google-cloud-cpp-0.5.0.ebuild
new file mode 100644
index 000000000000..4e651cbb6b25
--- /dev/null
+++ b/net-libs/google-cloud-cpp/google-cloud-cpp-0.5.0.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+JSON_VER="3.4.0"
+GOOGLEAPIS_COMMIT="6a3277c0656219174ff7c345f31fb20a90b30b97"
+
+DESCRIPTION="Google Cloud Client Library for C++"
+HOMEPAGE="https://cloud.google.com/"
+SRC_URI="https://github.com/GoogleCloudPlatform/google-cloud-cpp/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/nlohmann/json/releases/download/v${JSON_VER}/json.hpp -> nlohmann-json-${JSON_VER}-json.hpp
+ https://github.com/googleapis/googleapis/archive/${GOOGLEAPIS_COMMIT}.tar.gz -> googleapis-${GOOGLEAPIS_COMMIT}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="test"
+RDEPEND="dev-cpp/gtest
+ dev-libs/protobuf:=
+ dev-libs/crc32c
+ net-misc/curl
+ net-libs/grpc"
+DEPEND="${RDEPEND}"
+
+DOCS=( README.md )
+PATCHES=(
+ "${FILESDIR}/google-cloud-cpp-0.5.0-openssl.patch"
+)
+
+src_prepare() {
+ rm -rf "${S}/third_party/googleapis/" || die
+ mv "${WORKDIR}/googleapis-${GOOGLEAPIS_COMMIT}/" "${S}/third_party/googleapis/" || die
+
+ cmake-utils_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DGOOGLE_CLOUD_CPP_CRC32C_PROVIDER=package
+ -DGOOGLE_CLOUD_CPP_CURL_PROVIDER=package
+ -DGOOGLE_CLOUD_CPP_GMOCK_PROVIDER=package
+ -DGOOGLE_CLOUD_CPP_GRPC_PROVIDER=pkg-config
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_TESTING=OFF
+ )
+
+ cmake-utils_src_configure
+
+ mkdir -p "${BUILD_DIR}/external/nlohmann_json/src/" || die
+ cp "${DISTDIR}/nlohmann-json-${JSON_VER}-json.hpp" "${BUILD_DIR}/external/nlohmann_json/src/json.hpp" || die
+}
+
+src_test() {
+ # test fails
+ local myctestargs=(
+ -E internal_parse_rfc3339_test
+ )
+
+ cmake-utils_src_test
+}
diff --git a/net-libs/google-cloud-cpp/google-cloud-cpp-0.9.0.ebuild b/net-libs/google-cloud-cpp/google-cloud-cpp-0.9.0.ebuild
new file mode 100644
index 000000000000..0575f7a04ab0
--- /dev/null
+++ b/net-libs/google-cloud-cpp/google-cloud-cpp-0.9.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit cmake-utils
+
+JSON_VER="3.4.0"
+GOOGLEAPIS_COMMIT="6a3277c0656219174ff7c345f31fb20a90b30b97"
+
+DESCRIPTION="Google Cloud Client Library for C++"
+HOMEPAGE="https://cloud.google.com/"
+SRC_URI="https://github.com/GoogleCloudPlatform/google-cloud-cpp/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/nlohmann/json/releases/download/v${JSON_VER}/json.hpp -> nlohmann-json-${JSON_VER}-json.hpp
+ https://github.com/googleapis/googleapis/archive/${GOOGLEAPIS_COMMIT}.tar.gz -> googleapis-${GOOGLEAPIS_COMMIT}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+RESTRICT="test"
+RDEPEND="dev-libs/protobuf:=
+ dev-libs/crc32c
+ net-misc/curl
+ net-libs/grpc:="
+DEPEND="${RDEPEND}
+ dev-cpp/gtest"
+
+DOCS=( README.md )
+PATCHES=(
+ "${FILESDIR}/google-cloud-cpp-0.5.0-openssl.patch"
+ "${FILESDIR}/google-cloud-cpp-0.9.0-offline_nlohmannjson.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DGOOGLE_CLOUD_CPP_DEPENDENCY_PROVIDER=package
+ -DBUILD_SHARED_LIBS=ON
+ -DBUILD_TESTING=OFF
+ )
+
+ cmake-utils_src_configure
+
+ mkdir -p "${BUILD_DIR}/external/nlohmann_json/src/" || die
+ cp "${DISTDIR}/nlohmann-json-${JSON_VER}-json.hpp" "${BUILD_DIR}/external/nlohmann_json/src/json.hpp" || die
+
+ mkdir -p "${BUILD_DIR}/external/googleapis/src/" || die
+ cp "${DISTDIR}/googleapis-${GOOGLEAPIS_COMMIT}.tar.gz" \
+ "${BUILD_DIR}/external/googleapis/src/${GOOGLEAPIS_COMMIT}.tar.gz" || die
+}
+
+src_test() {
+ # test fails
+ local myctestargs=(
+ -E internal_parse_rfc3339_test
+ )
+
+ cmake-utils_src_test
+}
diff --git a/net-libs/google-cloud-cpp/metadata.xml b/net-libs/google-cloud-cpp/metadata.xml
new file mode 100644
index 000000000000..9ad1770de41d
--- /dev/null
+++ b/net-libs/google-cloud-cpp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>perfinion@gentoo.org</email>
+ <name>Jason Zaman</name>
+ </maintainer>
+ <longdescription lang="en">
+ Google Cloud Client Library for C++
+ </longdescription>
+ <origin>gentoo-staging</origin>
+</pkgmetadata>