aboutsummaryrefslogtreecommitdiff
path: root/ports/grpc/00009-use-system-upb.patch
blob: 32946ceef928238f5dad99dfe93e7a8b26d339dc (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
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c87e35a..24b619f 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")
 
@@ -2079,7 +2082,6 @@ target_link_libraries(grpc
   gpr
   ${_gRPC_SSL_LIBRARIES}
   address_sorting
-  upb
 )
 if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
   target_link_libraries(grpc "-framework CoreFoundation")
@@ -2624,7 +2626,6 @@ target_link_libraries(grpc_unsecure
   absl::statusor
   gpr
   address_sorting
-  upb
 )
 if(_gRPC_PLATFORM_IOS OR _gRPC_PLATFORM_MAC)
   target_link_libraries(grpc_unsecure "-framework CoreFoundation")
@@ -3805,7 +3806,7 @@ if(gRPC_INSTALL)
 endif()
 
 endif()
-
+if (gRPC_UPB_PROVIDER STREQUAL "module")
 add_library(upb
   third_party/upb/upb/decode_fast.c
   third_party/upb/upb/decode.c
@@ -3863,7 +3864,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 3623f4a..df6ced5 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 f2a0e50..c1c65f5 100644
--- a/cmake/upb.cmake
+++ b/cmake/upb.cmake
@@ -12,9 +12,21 @@
 # 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" "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upbdefs-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()