summaryrefslogtreecommitdiffstats
path: root/recipes-connectivity/kuksa-val/kuksa-val/0002-Fix-gRPC-configuration-for-OE-cross-compiling.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-connectivity/kuksa-val/kuksa-val/0002-Fix-gRPC-configuration-for-OE-cross-compiling.patch')
-rw-r--r--recipes-connectivity/kuksa-val/kuksa-val/0002-Fix-gRPC-configuration-for-OE-cross-compiling.patch53
1 files changed, 53 insertions, 0 deletions
diff --git a/recipes-connectivity/kuksa-val/kuksa-val/0002-Fix-gRPC-configuration-for-OE-cross-compiling.patch b/recipes-connectivity/kuksa-val/kuksa-val/0002-Fix-gRPC-configuration-for-OE-cross-compiling.patch
new file mode 100644
index 00000000..a7eaf100
--- /dev/null
+++ b/recipes-connectivity/kuksa-val/kuksa-val/0002-Fix-gRPC-configuration-for-OE-cross-compiling.patch
@@ -0,0 +1,53 @@
+From 09eba6eef270a3f75add5c54b5455399aecceaf6 Mon Sep 17 00:00:00 2001
+From: Scott Murray <scott.murray@konsulko.com>
+Date: Thu, 6 Oct 2022 11:56:57 -0400
+Subject: [PATCH 2/3] Fix gRPC configuration for OE cross-compiling
+
+The gRPC CMake package that kuksa.val pulls in is problematic with
+respect to cross-compiling with OpenEmbedded's split native and
+target sysroots, as the location of the grpc_cpp_plugin does not
+match the (somewhat ill-advised) assumptions in the original
+upstream gRPC configuration. To work around this, a patch to
+gRPC is separately applied to split the plugins into their own
+optional package, and the logic in grpc.cmake here tweaked to
+explicitly take cross-compilation into account.
+
+Upstream-Status: Pending
+
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+---
+ kuksa-val-server/grpc.cmake | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/kuksa-val-server/grpc.cmake b/kuksa-val-server/grpc.cmake
+index 4d90f1d..d097a69 100644
+--- a/kuksa-val-server/grpc.cmake
++++ b/kuksa-val-server/grpc.cmake
+@@ -14,14 +14,21 @@ set(gRPC_SSL_PROVIDER "package" CACHE STRING "Provider of ssl library")
+ set(GRPC_VER 1.44.0)
+
+ find_package(Protobuf)
+-find_package(gRPC ${GRPC_VER} EXACT CONFIG)
++find_package(gRPC ${GRPC_VER} CONFIG)
++if(NOT CMAKE_CROSSCOMPILING)
++ find_package(gRPCPlugin ${GRPC_VER} CONFIG)
++ if(gRPCPlugin_FOUND)
++ set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
++ endif()
++else()
++ find_program(_GRPC_CPP_PLUGIN_EXECUTABLE grpc_cpp_plugin)
++endif()
+
+-if(Protobuf_FOUND AND gRPC_FOUND)
++if(Protobuf_FOUND AND gRPC_FOUND AND _GRPC_CPP_PLUGIN_EXECUTABLE)
+ message(STATUS "Using protobuf ${protobuf_VERSION}")
+ message(STATUS "Using gRPC ${gRPC_VERSION}")
+
+ set(_GRPC_GRPCPP gRPC::grpc++)
+- set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
+ set(_REFLECTION gRPC::grpc++_reflection)
+ set(_PROTOBUF_PROTOC $<TARGET_FILE:protobuf::protoc>)
+
+--
+2.37.3
+