From 2286c633c29e141824638d29a9f45946d1f1a63a Mon Sep 17 00:00:00 2001 From: Jan Tattermusch Date: Tue, 27 Mar 2018 09:45:47 +0200 Subject: cmake "superbuild" example using externalprojects --- .../run_distrib_test_cmake_as_externalproject.bat | 41 ++++++++++++++++++++++ .../run_distrib_test_cmake_as_externalproject.sh | 41 ++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 test/distrib/cpp/run_distrib_test_cmake_as_externalproject.bat create mode 100755 test/distrib/cpp/run_distrib_test_cmake_as_externalproject.sh (limited to 'test/distrib') diff --git a/test/distrib/cpp/run_distrib_test_cmake_as_externalproject.bat b/test/distrib/cpp/run_distrib_test_cmake_as_externalproject.bat new file mode 100644 index 0000000000..6f4d581944 --- /dev/null +++ b/test/distrib/cpp/run_distrib_test_cmake_as_externalproject.bat @@ -0,0 +1,41 @@ +@rem Copyright 2016 gRPC authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem http://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. + +@rem enter this directory +cd /d %~dp0\..\..\.. + +@rem TODO(jtattermusch): Kokoro has pre-installed protoc.exe in C:\Program Files\ProtoC and that directory +@rem is on PATH. To avoid picking up the older version protoc.exe, we change the path to something non-existent. +set PATH=%PATH:ProtoC=DontPickupProtoC% + +@rem Download OpenSSL-Win32 originally installed from https://slproweb.com/products/Win32OpenSSL.html +powershell -Command "(New-Object Net.WebClient).DownloadFile('https://storage.googleapis.com/grpc-testing.appspot.com/OpenSSL-Win32-1_1_0g.zip', 'OpenSSL-Win32.zip')" +powershell -Command "Add-Type -Assembly 'System.IO.Compression.FileSystem'; [System.IO.Compression.ZipFile]::ExtractToDirectory('OpenSSL-Win32.zip', '.');" + +@rem set absolute path to OpenSSL with forward slashes +set OPENSSL_DIR=%cd:\=/%/OpenSSL-Win32 + +@rem Build helloworld example using cmake +@rem Use non-standard build directory to avoid too long filenames +mkdir example_build +cd example_build +cmake -DOPENSSL_ROOT_DIR=%OPENSSL_DIR% ../examples/cpp/helloworld/cmake_externalproject || goto :error +cmake --build . --config Release || goto :error +cd .. + +goto :EOF + +:error +echo Failed! +exit /b %errorlevel% diff --git a/test/distrib/cpp/run_distrib_test_cmake_as_externalproject.sh b/test/distrib/cpp/run_distrib_test_cmake_as_externalproject.sh new file mode 100755 index 0000000000..163527fbd5 --- /dev/null +++ b/test/distrib/cpp/run_distrib_test_cmake_as_externalproject.sh @@ -0,0 +1,41 @@ +#!/bin/bash +# Copyright 2017 gRPC authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -ex + +cd "$(dirname "$0")/../../.." + +echo "deb http://ftp.debian.org/debian jessie-backports main" | tee /etc/apt/sources.list.d/jessie-backports.list +apt-get update +apt-get install -t jessie-backports -y libssl-dev + +# To increase the confidence that gRPC installation works without depending on +# too many submodules unnecessarily, just wipe out contents of most submodules +# before starting the test. +rm -r third_party/abseil-cpp/* || true +rm -r third_party/benchmark/* || true +rm -r third_party/bloaty/* || true +rm -r third_party/boringssl/* || true +rm -r third_party/boringssl-with-bazel/* || true +rm -r third_party/gflags/* || true +rm -r third_party/googletest/* || true + +# Build helloworld example using cmake superbuild +cd examples/cpp/helloworld/cmake_externalproject +mkdir -p cmake/build +cd cmake/build +cmake ../.. +make + -- cgit v1.2.3