aboutsummaryrefslogtreecommitdiff
path: root/ports/grpc/00013-build-upbdefs.patch
blob: 9a601ec5aea7fc47ce9c48bb59694a3610cc46ac (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
diff --git a/cmake/upb.cmake b/cmake/upb.cmake
index 59d6813..1ce8bce 100644
--- a/cmake/upb.cmake
+++ b/cmake/upb.cmake
@@ -24,8 +24,21 @@ 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_LIBRARIES upb)
     set(_gRPC_UPB_INCLUDE_DIR)
-    set(upb ${_gRPC_UPB_LIBRARIES})
+    add_library(upb STATIC
+        ${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upbdefs-generated/google/protobuf/descriptor.upbdefs.c
+        ${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated/google/protobuf/descriptor.upb.c
+    )
+    set_target_properties(upb PROPERTIES OUTPUT_NAME grpc_upbdefs)
+    target_include_directories(upb PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upb-generated" "${CMAKE_CURRENT_SOURCE_DIR}/src/core/ext/upbdefs-generated")
+    target_link_libraries(upb PUBLIC upb::all_libs)
+    if(gRPC_INSTALL)
+        install(TARGETS upb EXPORT gRPCTargets
+            RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
+            LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
+            ARCHIVE DESTINATION ${gRPC_INSTALL_LIBDIR}
+        )
+    endif()
     set(_gRPC_FIND_UPB "if(NOT upb_FOUND)\n  find_package(upb CONFIG REQUIRED)\nendif()")
 endif()