From e6918187568dbd01842d8d1d2c808ce16a894239 Mon Sep 17 00:00:00 2001
From: Daniel Baumann <daniel.baumann@progress-linux.org>
Date: Sun, 21 Apr 2024 13:54:28 +0200
Subject: Adding upstream version 18.2.2.

Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
---
 .../cmake/proto-options-patch.cmake                | 116 +++++++++++++++++++++
 1 file changed, 116 insertions(+)
 create mode 100644 src/jaegertracing/opentelemetry-cpp/cmake/proto-options-patch.cmake

(limited to 'src/jaegertracing/opentelemetry-cpp/cmake/proto-options-patch.cmake')

diff --git a/src/jaegertracing/opentelemetry-cpp/cmake/proto-options-patch.cmake b/src/jaegertracing/opentelemetry-cpp/cmake/proto-options-patch.cmake
new file mode 100644
index 000000000..ed294ea79
--- /dev/null
+++ b/src/jaegertracing/opentelemetry-cpp/cmake/proto-options-patch.cmake
@@ -0,0 +1,116 @@
+macro(check_append_cxx_compiler_flag OUTPUT_VAR)
+  foreach(CHECK_FLAG ${ARGN})
+    check_cxx_compiler_flag(${CHECK_FLAG}
+                            "check_cxx_compiler_flag_${CHECK_FLAG}")
+    if(check_cxx_compiler_flag_${CHECK_FLAG})
+      list(APPEND ${OUTPUT_VAR} ${CHECK_FLAG})
+    endif()
+  endforeach()
+endmacro()
+
+if(NOT PATCH_PROTOBUF_SOURCES_OPTIONS_SET)
+  if(MSVC)
+    unset(PATCH_PROTOBUF_SOURCES_OPTIONS CACHE)
+    set(PATCH_PROTOBUF_SOURCES_OPTIONS /wd4244 /wd4251 /wd4267 /wd4309)
+
+    if(MSVC_VERSION GREATER_EQUAL 1922)
+      # see
+      # https://docs.microsoft.com/en-us/cpp/overview/cpp-conformance-improvements?view=vs-2019#improvements_162
+      # for detail
+      list(APPEND PATCH_PROTOBUF_SOURCES_OPTIONS /wd5054)
+    endif()
+
+    if(MSVC_VERSION GREATER_EQUAL 1925)
+      list(APPEND PATCH_PROTOBUF_SOURCES_OPTIONS /wd4996)
+    endif()
+
+    if(MSVC_VERSION LESS 1910)
+      list(APPEND PATCH_PROTOBUF_SOURCES_OPTIONS /wd4800)
+    endif()
+  else()
+    unset(PATCH_PROTOBUF_SOURCES_OPTIONS CACHE)
+    include(CheckCXXCompilerFlag)
+    check_append_cxx_compiler_flag(
+      PATCH_PROTOBUF_SOURCES_OPTIONS -Wno-type-limits
+      -Wno-deprecated-declarations -Wno-unused-parameter)
+  endif()
+  set(PATCH_PROTOBUF_SOURCES_OPTIONS_SET TRUE)
+  if(PATCH_PROTOBUF_SOURCES_OPTIONS)
+    set(PATCH_PROTOBUF_SOURCES_OPTIONS
+        ${PATCH_PROTOBUF_SOURCES_OPTIONS}
+        CACHE INTERNAL
+              "Options to disable warning of generated protobuf sources" FORCE)
+  endif()
+endif()
+
+function(patch_protobuf_sources)
+  if(PATCH_PROTOBUF_SOURCES_OPTIONS)
+    foreach(PROTO_SRC ${ARGN})
+      unset(PROTO_SRC_OPTIONS)
+      get_source_file_property(PROTO_SRC_OPTIONS ${PROTO_SRC} COMPILE_OPTIONS)
+      if(PROTO_SRC_OPTIONS)
+        list(APPEND PROTO_SRC_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
+      else()
+        set(PROTO_SRC_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
+      endif()
+
+      set_source_files_properties(
+        ${PROTO_SRC} PROPERTIES COMPILE_OPTIONS "${PROTO_SRC_OPTIONS}")
+    endforeach()
+    unset(PROTO_SRC)
+    unset(PROTO_SRC_OPTIONS)
+  endif()
+endfunction()
+
+function(patch_protobuf_targets)
+  if(PATCH_PROTOBUF_SOURCES_OPTIONS)
+    foreach(PROTO_TARGET ${ARGN})
+      unset(PROTO_TARGET_OPTIONS)
+      get_target_property(PROTO_TARGET_OPTIONS ${PROTO_TARGET} COMPILE_OPTIONS)
+      if(PROTO_TARGET_OPTIONS)
+        list(APPEND PROTO_TARGET_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
+      else()
+        set(PROTO_TARGET_OPTIONS ${PATCH_PROTOBUF_SOURCES_OPTIONS})
+      endif()
+
+      set_target_properties(
+        ${PROTO_TARGET} PROPERTIES COMPILE_OPTIONS "${PROTO_TARGET_OPTIONS}")
+    endforeach()
+    unset(PROTO_TARGET)
+    unset(PROTO_TARGET_OPTIONS)
+  endif()
+endfunction()
+
+function(project_build_tools_get_imported_location OUTPUT_VAR_NAME TARGET_NAME)
+  if(CMAKE_BUILD_TYPE)
+    string(TOUPPER "IMPORTED_LOCATION_${CMAKE_BUILD_TYPE}"
+                   TRY_SPECIFY_IMPORTED_LOCATION)
+    get_target_property(${OUTPUT_VAR_NAME} ${TARGET_NAME}
+                        ${TRY_SPECIFY_IMPORTED_LOCATION})
+  endif()
+  if(NOT ${OUTPUT_VAR_NAME})
+    get_target_property(${OUTPUT_VAR_NAME} ${TARGET_NAME} IMPORTED_LOCATION)
+  endif()
+  if(NOT ${OUTPUT_VAR_NAME})
+    get_target_property(
+      project_build_tools_get_imported_location_IMPORTED_CONFIGURATIONS
+      ${TARGET_NAME} IMPORTED_CONFIGURATIONS)
+    foreach(
+      project_build_tools_get_imported_location_IMPORTED_CONFIGURATION IN
+      LISTS project_build_tools_get_imported_location_IMPORTED_CONFIGURATIONS)
+      get_target_property(
+        ${OUTPUT_VAR_NAME}
+        ${TARGET_NAME}
+        "IMPORTED_LOCATION_${project_build_tools_get_imported_location_IMPORTED_CONFIGURATION}"
+      )
+      if(${OUTPUT_VAR_NAME})
+        break()
+      endif()
+    endforeach()
+  endif()
+  if(${OUTPUT_VAR_NAME})
+    set(${OUTPUT_VAR_NAME}
+        ${${OUTPUT_VAR_NAME}}
+        PARENT_SCOPE)
+  endif()
+endfunction()
-- 
cgit v1.2.3