summaryrefslogtreecommitdiffstats
path: root/src/jaegertracing/opentelemetry-cpp/docker/grpc
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/jaegertracing/opentelemetry-cpp/docker/grpc
parentInitial commit. (diff)
downloadceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz
ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/docker/grpc')
-rw-r--r--src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt84
-rw-r--r--src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile21
2 files changed, 105 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt b/src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt
new file mode 100644
index 000000000..8cb69cc6c
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/docker/grpc/CMakeLists.txt
@@ -0,0 +1,84 @@
+cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
+
+project(
+ dependencies
+ LANGUAGES CXX
+ VERSION 0.0.1)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_EXTENSIONS OFF)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_CXX_FLAGS "-O2")
+
+set(CMAKE_BUILD_TYPE
+ Release
+ CACHE STRING "Build type" FORCE)
+
+include(GNUInstallDirs)
+
+set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
+set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
+set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
+ ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
+
+set(INSTALL_LIBDIR
+ ${CMAKE_INSTALL_LIBDIR}
+ CACHE PATH "directory for libraries")
+set(INSTALL_BINDIR
+ ${CMAKE_INSTALL_BINDIR}
+ CACHE PATH "directory for executables")
+set(INSTALL_INCLUDEDIR
+ ${CMAKE_INSTALL_INCLUDEDIR}
+ CACHE PATH "directory for header files")
+
+set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME})
+set(INSTALL_CMAKEDIR
+ ${DEF_INSTALL_CMAKEDIR}
+ CACHE PATH "directory for CMake files")
+
+set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_BINARY_DIR}/subs)
+
+set(STAGED_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage)
+message(STATUS "${PROJECT_NAME} staged install: ${STAGED_INSTALL_PREFIX}")
+
+find_package(OpenSSL REQUIRED)
+message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
+message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
+
+set(GRPC_GIT_TAG
+ "v1.45.2"
+ CACHE STRING "gRPC version")
+
+include(ExternalProject)
+ExternalProject_Add(
+ grpc
+ GIT_REPOSITORY https://github.com/grpc/grpc.git
+ GIT_TAG ${GRPC_GIT_TAG}
+ GIT_SHALLOW 1
+ UPDATE_COMMAND ""
+ CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX}
+ -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+ -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
+ -DgRPC_SSL_PROVIDER=package
+ -DOPENSSL_ROOT_DIR=OpenSSL
+ -DgRPC_BUILD_TESTS=OFF
+ -DBUILD_SHARED_LIBS=ON
+ -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF
+ -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF
+ -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
+ -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF
+ -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=OFF
+ -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF
+ CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
+ TEST_AFTER_INSTALL 0
+ DOWNLOAD_NO_PROGRESS 1
+ LOG_CONFIGURE 1
+ LOG_BUILD 0
+ LOG_INSTALL 1)
+
+install(
+ DIRECTORY ${STAGED_INSTALL_PREFIX}/
+ DESTINATION .
+ USE_SOURCE_PERMISSIONS)
diff --git a/src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile b/src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile
new file mode 100644
index 000000000..fee3082b2
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/docker/grpc/Dockerfile
@@ -0,0 +1,21 @@
+ARG BASE_IMAGE=ubuntu:latest
+FROM ${BASE_IMAGE} AS grpc
+
+ARG CORES=${nproc}
+ARG GRPC_GIT_TAG=v1.45.2
+
+RUN mkdir mkdir -p /opt/third_party/grpc
+
+WORKDIR /opt/third_party/grpc
+
+ADD CMakeLists.txt /opt/third_party/grpc
+
+RUN mkdir build \
+ && cd build \
+ && cmake -DCMAKE_INSTALL_PREFIX=/opt/third_party/install \
+ -DGRPC_GIT_TAG=${GRPC_GIT_TAG} /opt/third_party/grpc \
+ && cmake --build . -j ${CORES} --target install
+
+FROM scratch as final
+
+COPY --from=grpc /opt/third_party/install /