aboutsummaryrefslogtreecommitdiff
path: root/ports/grpc/00009-use-system-upb.patch
blob: 1e5f9a7216e09b6fc444e4dfc5a80f9776a65920 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ec1714687e..e15d25097f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,6 +84,9 @@ set_property(CACHE gRPC_SSL_PROVIDER PROPERTY STRINGS "module" "package")
 set(gRPC_PROTOBUF_PROVIDER "module" CACHE STRING "Provider of protobuf library")
 set_property(CACHE gRPC_PROTOBUF_PROVIDER PROPERTY STRINGS "module" "package")
 
+set(gRPC_UPB_PROVIDER "module" CACHE STRING "Provider of upb library")
+set_property(CACHE gRPC_UPB_PROVIDER PROPERTY STRINGS "module" "package")
+
 set(gRPC_PROTOBUF_PACKAGE_TYPE "" CACHE STRING "Algorithm for searching protobuf package")
 set_property(CACHE gRPC_PROTOBUF_PACKAGE_TYPE PROPERTY STRINGS "CONFIG" "MODULE")
 
@@ -1911,7 +1914,6 @@ target_link_libraries(grpc
   ${_gRPC_ALLTARGETS_LIBRARIES}
   gpr
   address_sorting
-  upb
   absl::optional
   absl::strings
   absl::status
@@ -1993,7 +1995,6 @@ target_link_libraries(grpc_csharp_ext
   grpc
   gpr
   address_sorting
-  upb
 )
 
 
@@ -2463,7 +2464,6 @@ target_link_libraries(grpc_unsecure
   ${_gRPC_ALLTARGETS_LIBRARIES}
   gpr
   address_sorting
-  upb
   absl::optional
   absl::strings
   absl::status
@@ -2661,7 +2661,6 @@ target_link_libraries(grpc++
   grpc
   gpr
   address_sorting
-  upb
 )
 
 foreach(_hdr
@@ -2907,7 +2906,6 @@ target_link_libraries(grpc++_alts
   grpc
   gpr
   address_sorting
-  upb
 )
 
 foreach(_hdr
@@ -2976,7 +2974,6 @@ target_link_libraries(grpc++_error_details
   grpc
   gpr
   address_sorting
-  upb
 )
 
 foreach(_hdr
@@ -3049,7 +3046,6 @@ target_link_libraries(grpc++_reflection
   grpc
   gpr
   address_sorting
-  upb
 )
 
 foreach(_hdr
@@ -3330,7 +3326,6 @@ target_link_libraries(grpc++_unsecure
   grpc_unsecure
   gpr
   address_sorting
-  upb
 )
 
 foreach(_hdr
@@ -3648,7 +3643,6 @@ target_link_libraries(grpcpp_channelz
   grpc
   gpr
   address_sorting
-  upb
 )
 
 foreach(_hdr
@@ -3675,6 +3669,7 @@ endif()
 
 endif()
 
+if (gRPC_UPB_PROVIDER STREQUAL "module")
 add_library(upb
   third_party/upb/upb/decode.c
   third_party/upb/upb/encode.c
@@ -3726,7 +3721,7 @@ if(gRPC_INSTALL)
   )
 endif()
 
-
+endif()
 
 add_executable(check_epollexclusive
   test/build/check_epollexclusive.c
diff --git a/cmake/gRPCConfig.cmake.in b/cmake/gRPCConfig.cmake.in
index 3623f4aa5e..df6ced560e 100644
--- a/cmake/gRPCConfig.cmake.in
+++ b/cmake/gRPCConfig.cmake.in
@@ -8,6 +8,7 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/modules)
 @_gRPC_FIND_CARES@
 @_gRPC_FIND_ABSL@
 @_gRPC_FIND_RE2@
+@_gRPC_FIND_UPB@
 
 # Targets
 include(${CMAKE_CURRENT_LIST_DIR}/gRPCTargets.cmake)
diff --git a/cmake/upb.cmake b/cmake/upb.cmake
index f2a0e508c3..ecce7ba300 100644
--- a/cmake/upb.cmake
+++ b/cmake/upb.cmake
@@ -12,9 +12,20 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+set(_gRPC_UPB_GRPC_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated")
+if (gRPC_UPB_PROVIDER STREQUAL "module")
+
 set(UPB_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/third_party/upb)
 
 set(_gRPC_UPB_INCLUDE_DIR "${UPB_ROOT_DIR}")
 set(_gRPC_UPB_GRPC_GENERATED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated" "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upbdefs-generated")
 
 set(_gRPC_UPB_LIBRARIES upb)
+
+elseif(gRPC_UPB_PROVIDER STREQUAL "package")
+    find_package(upb CONFIG REQUIRED)
+    set(_gRPC_UPB_LIBRARIES upb::upb)
+    set(_gRPC_UPB_INCLUDE_DIR)
+    set(upb ${_gRPC_UPB_LIBRARIES})
+    set(_gRPC_FIND_UPB "if(NOT upb_FOUND)\n  find_package(upb CONFIG REQUIRED)\nendif()")
+endif()