From 0f2c73b62bdc612f9d5cdd8e0c765995470d4f8b Mon Sep 17 00:00:00 2001
From: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Date: Tue, 25 May 2021 14:55:23 +0200
Subject: [PATCH] Add option to restrict building of (host-)grpc to
 grpc_cpp_plugin only.

This avoids unnecessary dependencies on big packages like libabseil-cpp and
others.

Upstream: not accepted (see https://github.com/grpc/grpc/issues/25322)

Signed-off-by: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>

Updated for 1.48.0:
Signed-off-by: Michael Nosthoff <buildroot@heine.tech>
---
 CMakeLists.txt | 39 +++++++++++++++++++++++++++++++++++----
 1 file changed, 35 insertions(+), 4 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 0dcae6b1aee5..57b3963a43b0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -49,12 +49,16 @@ option(gRPC_BUILD_TESTS "Build tests" OFF)
 option(gRPC_BUILD_CODEGEN "Build codegen" ON)
 option(gRPC_BUILD_CSHARP_EXT "Build C# extensions" ON)
 option(gRPC_BACKWARDS_COMPATIBILITY_MODE "Build libraries that are binary compatible across a larger number of OS and libc versions" OFF)
+option(gRPC_BUILD_PLUGIN_SUPPORT_ONLY "Build plugin support only" OFF)
 
 set(gRPC_INSTALL_default ON)
 if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
   # Disable gRPC_INSTALL by default if building as a submodule
   set(gRPC_INSTALL_default OFF)
 endif()
+if(gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+  set(gRPC_INSTALL_default OFF)
+endif()
 set(gRPC_INSTALL ${gRPC_INSTALL_default} CACHE BOOL
     "Generate installation target")
 
@@ -563,6 +567,8 @@ add_custom_target(plugins
   DEPENDS ${_gRPC_PLUGIN_LIST}
 )
 
+if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
 add_custom_target(tools_c
   DEPENDS
 )
@@ -574,6 +580,8 @@ add_custom_target(tools_cxx
 add_custom_target(tools
   DEPENDS tools_c tools_cxx)
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
+
 protobuf_generate_grpc_cpp_with_import_path_correction(
   src/proto/grpc/channelz/channelz.proto src/proto/grpc/channelz/channelz.proto
 )
@@ -1307,6 +1315,7 @@ if(gRPC_BUILD_TESTS)
     DEPENDS buildtests_c buildtests_cxx)
 endif()
 
+if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
 
 add_library(address_sorting
   third_party/address_sorting/address_sorting.c
@@ -1359,6 +1368,8 @@ if(gRPC_INSTALL)
   )
 endif()
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
+
 if(gRPC_BUILD_TESTS)
 
 add_library(end2end_tests
@@ -1512,6 +1523,8 @@ target_link_libraries(end2end_tests
 
 endif()
 
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
 add_library(gpr
   src/core/lib/gpr/alloc.cc
   src/core/lib/gpr/atm.cc
@@ -2504,6 +2517,8 @@ if(gRPC_INSTALL)
   )
 endif()
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
+
 if(gRPC_BUILD_TESTS)
 
 add_library(grpc_test_util
@@ -2618,6 +2633,8 @@ endif()
 
 endif()
 
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
 add_library(grpc_unsecure
   src/core/ext/filters/census/grpc_context.cc
   src/core/ext/filters/channel_idle/channel_idle_filter.cc
@@ -3102,6 +3119,8 @@ if(gRPC_INSTALL)
   )
 endif()
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
+
 if(gRPC_BUILD_TESTS)
 
 if(gRPC_BUILD_CODEGEN)
@@ -3185,6 +3204,8 @@ endif()
 
 endif()
 
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
 add_library(grpc++
   src/core/ext/transport/binder/client/binder_connector.cc
   src/core/ext/transport/binder/client/channel_create.cc
@@ -3635,6 +3656,7 @@ if(gRPC_INSTALL)
   )
 endif()
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
 
 if(gRPC_BUILD_CODEGEN)
 add_library(grpc++_reflection
@@ -3889,6 +3911,8 @@ target_link_libraries(grpc++_test_util
 
 endif()
 
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
 add_library(grpc++_unsecure
   src/cpp/client/channel_cc.cc
   src/cpp/client/client_callback.cc
@@ -4181,6 +4205,7 @@ if(gRPC_INSTALL)
   )
 endif()
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
 
 add_library(grpc_plugin_support
   src/compiler/cpp_generator.cc
@@ -4240,7 +4265,7 @@ foreach(_hdr
 endforeach()
 
 
-if(gRPC_INSTALL)
+if(gRPC_INSTALL OR gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
   install(TARGETS grpc_plugin_support EXPORT gRPCTargets
     RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
     BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
@@ -4324,6 +4349,8 @@ endif()
 
 endif()
 
+if(NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
+
 add_library(upb
   third_party/upb/third_party/utf8_range/naive.c
   third_party/upb/third_party/utf8_range/range2-neon.c
@@ -4393,6 +4420,8 @@ if(gRPC_INSTALL)
   )
 endif()
 
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
+
 
 if(gRPC_BUILD_TESTS)
 
@@ -11085,7 +11114,7 @@ target_link_libraries(grpc_completion_queue_test
 
 
 endif()
-if(gRPC_BUILD_CODEGEN AND gRPC_BUILD_GRPC_CPP_PLUGIN)
+if(gRPC_BUILD_GRPC_CPP_PLUGIN)
 
 add_executable(grpc_cpp_plugin
   src/compiler/cpp_plugin.cc
@@ -11115,7 +11144,7 @@ target_link_libraries(grpc_cpp_plugin
 
 
 
-if(gRPC_INSTALL)
+if(gRPC_INSTALL OR gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
   install(TARGETS grpc_cpp_plugin EXPORT gRPCTargets
     RUNTIME DESTINATION ${gRPC_INSTALL_BINDIR}
     BUNDLE DESTINATION  ${gRPC_INSTALL_BINDIR}
@@ -23128,7 +23157,7 @@ endif()
 
 
 
-
+if (NOT gRPC_BUILD_PLUGIN_SUPPORT_ONLY)
 
 if(gRPC_INSTALL)
   install(EXPORT gRPCTargets
@@ -23225,3 +23254,5 @@ generate_pkgconfig(
   "-lgrpc++_unsecure"
   ""
   "grpc++_unsecure.pc")
+
+endif() # gRPC_BUILD_PLUGIN_SUPPORT_ONLY
-- 
2.43.0

