gs: update README to use fixed versions
authorFloris <weersproductions@gmail.com>
Mon, 25 Oct 2021 16:52:24 +0000 (18:52 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 25 Oct 2021 18:34:16 +0000 (18:34 +0000)
Use specific versions, instead of relying on 'master'.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1246>

subprojects/gst-plugins-bad/ext/gs/README.md

index 92e6959..89de45e 100644 (file)
@@ -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.