0004-host-grpc-only-cpp-plugin.patch 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  1. From a1922eadfc87da3dd221ff631f94ddd4a8ee7049 Mon Sep 17 00:00:00 2001
  2. From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
  3. Date: Tue, 25 May 2021 14:55:23 +0200
  4. Subject: [PATCH] Add option to restrict building of (host-)grpc to
  5. grpc_cpp_plugin only.
  6. This avoids unnecessary dependencies on big packages like libabseil-cpp and
  7. others.
  8. Upstream-status: not accepted (see https://github.com/grpc/grpc/issues/25322)
  9. Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
  10. ---
  11. CMakeLists.txt | 43 +++++++++++++++++++++++++++++++++++--------
  12. 1 file changed, 35 insertions(+), 8 deletions(-)
  13. diff --git a/CMakeLists.txt b/CMakeLists.txt
  14. index e8934a3e03..c2df332cc6 100644
  15. --- a/CMakeLists.txt
  16. +++ b/CMakeLists.txt
  17. @@ -48,12 +48,16 @@ option(gRPC_BUILD_TESTS "Build tests" OFF)
  18. option(gRPC_BUILD_CODEGEN "Build codegen" ON)
  19. option(gRPC_BUILD_CSHARP_EXT "Build C# extensions" ON)
  20. option(gRPC_BACKWARDS_COMPATIBILITY_MODE "Build libraries that are binary compatible across a larger number of OS and libc versions" OFF)
  21. +option(gRPC_BUILD_PLUGIN_SUPPORT_ONLY "Build plugin support only" OFF)
  22. set(gRPC_INSTALL_default ON)
  23. if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
  24. # Disable gRPC_INSTALL by default if building as a submodule
  25. set(gRPC_INSTALL_default OFF)
  26. endif()
  27. +if(gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  28. + set(gRPC_INSTALL_default OFF)
  29. +endif()
  30. set(gRPC_INSTALL ${gRPC_INSTALL_default} CACHE BOOL
  31. "Generate installation target")
  32. @@ -367,6 +371,8 @@ add_custom_target(plugins
  33. DEPENDS ${_gRPC_PLUGIN_LIST}
  34. )
  35. +if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  36. +
  37. add_custom_target(tools_c
  38. DEPENDS
  39. check_epollexclusive
  40. @@ -382,6 +388,8 @@ add_custom_target(tools_cxx
  41. add_custom_target(tools
  42. DEPENDS tools_c tools_cxx)
  43. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  44. +
  45. protobuf_generate_grpc_cpp(
  46. src/proto/grpc/channelz/channelz.proto
  47. )
  48. @@ -1000,6 +1008,7 @@ if(gRPC_BUILD_TESTS)
  49. DEPENDS buildtests_c buildtests_cxx)
  50. endif()
  51. +if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  52. add_library(address_sorting
  53. third_party/address_sorting/address_sorting.c
  54. @@ -1051,6 +1060,8 @@ if(gRPC_INSTALL)
  55. )
  56. endif()
  57. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  58. +
  59. if(gRPC_BUILD_TESTS)
  60. add_library(end2end_nosec_tests
  61. @@ -1313,6 +1324,8 @@ target_link_libraries(end2end_tests
  62. endif()
  63. +if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  64. +
  65. add_library(gpr
  66. src/core/lib/gpr/alloc.cc
  67. src/core/lib/gpr/atm.cc
  68. @@ -2106,6 +2119,8 @@ if(gRPC_INSTALL)
  69. )
  70. endif()
  71. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  72. +
  73. if(gRPC_BUILD_CSHARP_EXT)
  74. add_library(grpc_csharp_ext SHARED
  75. @@ -2288,6 +2303,8 @@ endif()
  76. endif()
  77. +if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  78. +
  79. add_library(grpc_unsecure
  80. src/core/ext/filters/census/grpc_context.cc
  81. src/core/ext/filters/client_channel/backend_metric.cc
  82. @@ -2650,6 +2667,8 @@ if(gRPC_INSTALL)
  83. )
  84. endif()
  85. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  86. +
  87. if(gRPC_BUILD_TESTS)
  88. if(gRPC_BUILD_CODEGEN)
  89. @@ -2717,6 +2736,8 @@ endif()
  90. endif()
  91. +if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  92. +
  93. add_library(grpc++
  94. src/cpp/client/channel_cc.cc
  95. src/cpp/client/client_callback.cc
  96. @@ -3134,6 +3155,7 @@ if(gRPC_INSTALL)
  97. )
  98. endif()
  99. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  100. if(gRPC_BUILD_CODEGEN)
  101. add_library(grpc++_reflection
  102. @@ -3374,6 +3396,8 @@ target_link_libraries(grpc++_test_util
  103. endif()
  104. +if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  105. +
  106. add_library(grpc++_unsecure
  107. src/cpp/client/channel_cc.cc
  108. src/cpp/client/client_callback.cc
  109. @@ -3656,6 +3680,7 @@ if(gRPC_INSTALL)
  110. )
  111. endif()
  112. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  113. add_library(grpc_plugin_support
  114. src/compiler/cpp_generator.cc
  115. @@ -3715,7 +3740,7 @@ foreach(_hdr
  116. endforeach()
  117. -if(gRPC_INSTALL)
  118. +if(gRPC_INSTALL OR gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  119. install(TARGETS grpc_plugin_support EXPORT gRPCTargets
  120. RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
  121. LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
  122. @@ -3795,6 +3820,8 @@ endif()
  123. endif()
  124. +if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  125. +
  126. add_library(upb
  127. third_party/upb/upb/decode_fast.c
  128. third_party/upb/upb/decode.c
  129. @@ -3852,8 +3879,6 @@ if(gRPC_INSTALL)
  130. )
  131. endif()
  132. -
  133. -
  134. add_executable(check_epollexclusive
  135. test/build/check_epollexclusive.c
  136. )
  137. @@ -3906,8 +3931,6 @@ target_link_libraries(gen_hpack_tables
  138. gpr
  139. )
  140. -
  141. -
  142. add_executable(gen_legal_metadata_characters
  143. tools/codegen/core/gen_legal_metadata_characters.cc
  144. )
  145. @@ -3958,6 +3981,8 @@ target_link_libraries(gen_percent_encoding_tables
  146. ${_gRPC_ALLTARGETS_LIBRARIES}
  147. )
  148. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  149. +
  150. if(gRPC_BUILD_TESTS)
  151. @@ -10722,7 +10747,7 @@ target_link_libraries(grpc_cli
  152. endif()
  153. -if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_CPP_PLUGIN)
  154. +if(gRPC_BUILD_GRPC_CPP_PLUGIN)
  155. add_executable(grpc_cpp_plugin
  156. src/compiler/cpp_plugin.cc
  157. @@ -10752,7 +10777,7 @@ target_link_libraries(grpc_cpp_plugin
  158. -if(gRPC_INSTALL)
  159. +if(gRPC_INSTALL OR gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  160. install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets
  161. RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
  162. LIBRARY DESTINATION ${gRPC_INSTALL_LIBDIR}
  163. @@ -15420,7 +15445,7 @@ endif()
  164. -
  165. +if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
  166. if(gRPC_INSTALL)
  167. install(EXPORT gRPCTargets
  168. @@ -15517,3 +15542,5 @@ generate_pkgconfig(
  169. "-lgrpc++_unsecure -labsl_statusor -labsl_status -labsl_raw_hash_set -labsl_hashtablez_sampler -labsl_synchronization -labsl_time -labsl_time_zone -labsl_civil_time -labsl_graphcycles_internal -labsl_symbolize -labsl_demangle_internal -labsl_malloc_internal -labsl_stacktrace -labsl_debugging_internal -labsl_exponential_biased -labsl_cord -labsl_str_format_internal -labsl_hash -labsl_bad_variant_access -labsl_bad_optional_access -labsl_strings -labsl_strings_internal -labsl_base -labsl_spinlock_wait -labsl_int128 -labsl_city -labsl_throw_delegate -labsl_raw_logging_internal -labsl_log_severity"
  170. ""
  171. "grpc++_unsecure.pc")
  172. +
  173. +endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
  174. --
  175. 2.26.3