From 6d447acef59ff0d116e870a54cdea69a837f8632 Mon Sep 17 00:00:00 2001 From: Floris Date: Mon, 25 Oct 2021 18:52:24 +0200 Subject: [PATCH] gs: update README to use fixed versions Use specific versions, instead of relying on 'master'. Part-of: --- subprojects/gst-plugins-bad/ext/gs/README.md | 87 +++++++++++++++++----------- 1 file changed, 53 insertions(+), 34 deletions(-) diff --git a/subprojects/gst-plugins-bad/ext/gs/README.md b/subprojects/gst-plugins-bad/ext/gs/README.md index 92e6959..89de45e 100644 --- a/subprojects/gst-plugins-bad/ext/gs/README.md +++ b/subprojects/gst-plugins-bad/ext/gs/README.md @@ -1,5 +1,4 @@ # Install the Google Cloud Storage dependencies. - ``` sudo apt-get install \ cmake \ @@ -7,69 +6,89 @@ sudo apt-get install \ libgrpc++-dev \ libprotobuf-dev \ protobuf-compiler-grpc \ - nlohmann-json3-dev + flex bison pkg-config \ + curl ``` # Build the Google Cloud Storage library ``` -git clone https://github.com/google/crc32c.git -cd crc32c && git checkout -b 1.1.1 -mkdir build && cd build -cmake .. \ +export cmake_prefix=/usr/local + +mkdir crc32c +cd crc32c +curl -sSL https://github.com/google/crc32c/archive/1.1.2.tar.gz | \ + tar -xzf - --strip-components=1 +cmake -S . -B build \ -GNinja \ - -DCMAKE_INSTALL_PREFIX:PATH=~/dev/gstreamer/prefix \ + -DCMAKE_INSTALL_PREFIX:PATH=$cmake_prefix \ -DCMAKE_INSTALL_LIBDIR:PATH=lib \ -DBUILD_SHARED_LIBS=YES \ -DCRC32C_USE_GLOG=NO \ -DCRC32C_BUILD_TESTS=NO \ -DCRC32C_BUILD_BENCHMARKS=NO -ninja && ninja install -cd ../.. +cmake --build build --target install +cd .. -git clone https://github.com/abseil/abseil-cpp.git -cd abseil-cpp && git checkout master -mkdir build && cd build -cmake .. \ +mkdir abseil-cpp +cd abseil-cpp +curl -sSL https://github.com/abseil/abseil-cpp/archive/20210324.2.tar.gz | \ + tar -xzf - --strip-components=1 && \ + sed -i 's/^#define ABSL_OPTION_USE_\(.*\) 2/#define ABSL_OPTION_USE_\1 0/' "absl/base/options.h" +cmake -S . -B build \ -GNinja \ -DBUILD_TESTING=NO \ - -DCMAKE_INSTALL_PREFIX:PATH=~/dev/gstreamer/prefix \ + -DCMAKE_INSTALL_PREFIX:PATH=$cmake_prefix \ -DCMAKE_INSTALL_LIBDIR:PATH=lib \ -DBUILD_SHARED_LIBS=YES -ninja && ninja install -cd ../.. +cmake --build build --target install +cd .. + +# Nlohman/json +mkdir json +cd json +curl -sSL https://github.com/nlohmann/json/archive/v3.10.4.tar.gz | \ + tar -xzf - --strip-components=1 +cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_SHARED_LIBS=yes \ + -DBUILD_TESTING=OFF \ + -H. -Bcmake-out/nlohmann/json && \ + cmake --build cmake-out/nlohmann/json --target install -- -j ${NCPU} && \ + ldconfig +cd .. -git clone https://github.com/googleapis/google-cloud-cpp.git -cd google-cloud-cpp && git checkout -b v1.31.1 -mkdir build && cd build -cmake .. \ +mkdir google-cloud-cpp +cd google-cloud-cpp +curl -sSL https://github.com/googleapis/google-cloud-cpp/archive/v1.31.1.tar.gz | \ + tar --strip-components=1 -zxf - +cmake -S . -B build \ -GNinja \ - -DCMAKE_INSTALL_PREFIX:PATH=~/dev/gstreamer/prefix \ + -DCMAKE_BUILD_TYPE=Debug \ + -DCMAKE_CXX_STANDARD=14 \ + -DCMAKE_INSTALL_PREFIX:PATH=$cmake_prefix \ -DCMAKE_INSTALL_LIBDIR:PATH=lib \ -DBUILD_SHARED_LIBS=YES \ -DBUILD_TESTING=NO \ -DGOOGLE_CLOUD_CPP_ENABLE=storage -ninja && ninja install -cd ../.. +cmake --build build --target install -- -v +cd .. ``` # Running the gs elements locally -When running from the command line or in a container running locally, simply -set the credentials by exporting GOOGLE_APPLICATION_CREDENTIALS. If you are -not familiar with this environment variable, check the documentation +When running from the command line or in a container running locally, simply set the credentials by exporting +GOOGLE_APPLICATION_CREDENTIALS. If you are not familiar with this environment variable, check the documentation https://cloud.google.com/docs/authentication/getting-started -Note that you can restrict a service account to the role Storage Admin or -Storage Object Creator instead of the Project Owner role from the above -documentation. +Note that you can restrict a service account to the role Storage Admin or Storage Object Creator instead of the Project +Owner role from the above documentation. # Running the gs elements in Google Cloud Run -Add the Storage Object Viewer role to the service account assigned to the -Cloud Run service where gssrc runs. For gssink add the role Storage Object -Creator. Then just set the service-account-email property on the element. +Add the Storage Object Viewer role to the service account assigned to the Cloud Run service where gssrc runs. For gssink +add the role Storage Object Creator. Then just set the service-account-email property on the element. # Running the gs elements in Google Cloud Kubernetes -You need to set GOOGLE_APPLICATION_CREDENTIALS in the container and ship the -json file to which the environment variable points to. +You need to set GOOGLE_APPLICATION_CREDENTIALS in the container and ship the json file to which the environment variable +points to. -- 2.7.4