Patch gRPC-C++.podspec to support framework

pull/14480/head
Muxi Yan 7 years ago
parent d555bd8543
commit 6be15eef08
  1. 95
      gRPC-C++.podspec
  2. 23
      templates/gRPC-C++.podspec.template

@ -42,8 +42,14 @@ Pod::Spec.new do |s|
s.osx.deployment_target = '10.9'
s.requires_arc = false
# Add include prefix `grpc++` (i.e. `#include <grpc++/xxx.h>`).
s.header_dir = 'grpc++'
name = 'grpcpp'
# Use `grpcpp` as framework name so that `#include <grpcpp/xxx.h>` works when built as
# framework.
s.module_name = name
# Add include prefix `grpcpp` so that `#include <grpcpp/xxx.h>` works when built as static
# library.
s.header_dir = name
s.pod_target_xcconfig = {
'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(PODS_TARGET_SRCROOT)/include"',
@ -64,54 +70,9 @@ Pod::Spec.new do |s|
s.default_subspecs = 'Interface', 'Implementation'
s.subspec 'Interface' do |ss|
ss.header_mappings_dir = 'include/grpc++'
ss.header_mappings_dir = 'include/grpcpp'
ss.source_files = 'include/grpc++/alarm.h',
'include/grpc++/channel.h',
'include/grpc++/client_context.h',
'include/grpc++/completion_queue.h',
'include/grpc++/create_channel.h',
'include/grpc++/create_channel_posix.h',
'include/grpc++/ext/health_check_service_server_builder_option.h',
'include/grpc++/generic/async_generic_service.h',
'include/grpc++/generic/generic_stub.h',
'include/grpc++/grpc++.h',
'include/grpc++/health_check_service_interface.h',
'include/grpc++/impl/call.h',
'include/grpc++/impl/channel_argument_option.h',
'include/grpc++/impl/client_unary_call.h',
'include/grpc++/impl/codegen/core_codegen.h',
'include/grpc++/impl/grpc_library.h',
'include/grpc++/impl/method_handler_impl.h',
'include/grpc++/impl/rpc_method.h',
'include/grpc++/impl/rpc_service_method.h',
'include/grpc++/impl/serialization_traits.h',
'include/grpc++/impl/server_builder_option.h',
'include/grpc++/impl/server_builder_plugin.h',
'include/grpc++/impl/server_initializer.h',
'include/grpc++/impl/service_type.h',
'include/grpc++/resource_quota.h',
'include/grpc++/security/auth_context.h',
'include/grpc++/security/auth_metadata_processor.h',
'include/grpc++/security/credentials.h',
'include/grpc++/security/server_credentials.h',
'include/grpc++/server.h',
'include/grpc++/server_builder.h',
'include/grpc++/server_context.h',
'include/grpc++/server_posix.h',
'include/grpc++/support/async_stream.h',
'include/grpc++/support/async_unary_call.h',
'include/grpc++/support/byte_buffer.h',
'include/grpc++/support/channel_arguments.h',
'include/grpc++/support/config.h',
'include/grpc++/support/slice.h',
'include/grpc++/support/status.h',
'include/grpc++/support/status_code_enum.h',
'include/grpc++/support/string_ref.h',
'include/grpc++/support/stub_options.h',
'include/grpc++/support/sync_stream.h',
'include/grpc++/support/time.h',
'include/grpcpp/alarm.h',
ss.source_files = 'include/grpcpp/alarm.h',
'include/grpcpp/channel.h',
'include/grpcpp/client_context.h',
'include/grpcpp/completion_queue.h',
@ -156,36 +117,6 @@ Pod::Spec.new do |s|
'include/grpcpp/support/stub_options.h',
'include/grpcpp/support/sync_stream.h',
'include/grpcpp/support/time.h',
'include/grpc++/impl/codegen/async_stream.h',
'include/grpc++/impl/codegen/async_unary_call.h',
'include/grpc++/impl/codegen/byte_buffer.h',
'include/grpc++/impl/codegen/call.h',
'include/grpc++/impl/codegen/call_hook.h',
'include/grpc++/impl/codegen/channel_interface.h',
'include/grpc++/impl/codegen/client_context.h',
'include/grpc++/impl/codegen/client_unary_call.h',
'include/grpc++/impl/codegen/completion_queue.h',
'include/grpc++/impl/codegen/completion_queue_tag.h',
'include/grpc++/impl/codegen/config.h',
'include/grpc++/impl/codegen/core_codegen_interface.h',
'include/grpc++/impl/codegen/create_auth_context.h',
'include/grpc++/impl/codegen/grpc_library.h',
'include/grpc++/impl/codegen/metadata_map.h',
'include/grpc++/impl/codegen/method_handler_impl.h',
'include/grpc++/impl/codegen/rpc_method.h',
'include/grpc++/impl/codegen/rpc_service_method.h',
'include/grpc++/impl/codegen/security/auth_context.h',
'include/grpc++/impl/codegen/serialization_traits.h',
'include/grpc++/impl/codegen/server_context.h',
'include/grpc++/impl/codegen/server_interface.h',
'include/grpc++/impl/codegen/service_type.h',
'include/grpc++/impl/codegen/slice.h',
'include/grpc++/impl/codegen/status.h',
'include/grpc++/impl/codegen/status_code_enum.h',
'include/grpc++/impl/codegen/string_ref.h',
'include/grpc++/impl/codegen/stub_options.h',
'include/grpc++/impl/codegen/sync_stream.h',
'include/grpc++/impl/codegen/time.h',
'include/grpcpp/impl/codegen/async_stream.h',
'include/grpcpp/impl/codegen/async_unary_call.h',
'include/grpcpp/impl/codegen/byte_buffer.h',
@ -224,8 +155,7 @@ Pod::Spec.new do |s|
ss.dependency 'gRPC-Core', grpc_version
ss.dependency 'nanopb', '~> 0.3'
ss.source_files = 'include/grpc++/impl/codegen/core_codegen.h',
'include/grpcpp/impl/codegen/core_codegen.h',
ss.source_files = 'include/grpcpp/impl/codegen/core_codegen.h',
'src/cpp/client/secure_credentials.h',
'src/cpp/common/secure_auth_context.h',
'src/cpp/server/secure_server_credentials.h',
@ -519,8 +449,7 @@ Pod::Spec.new do |s|
'src/core/ext/filters/workarounds/workaround_cronet_compression_filter.h',
'src/core/ext/filters/workarounds/workaround_utils.h'
ss.private_header_files = 'include/grpc++/impl/codegen/core_codegen.h',
'include/grpcpp/impl/codegen/core_codegen.h',
ss.private_header_files = 'include/grpcpp/impl/codegen/core_codegen.h',
'src/cpp/client/secure_credentials.h',
'src/cpp/common/secure_auth_context.h',
'src/cpp/server/secure_server_credentials.h',

@ -30,6 +30,9 @@
out += lib.get(group, [])
return out
def filter_grpcpp(files):
return [file for file in files if not file.startswith("include/grpc++")]
def grpc_private_files(libs):
out = grpc_lib_files(libs, ("grpc", "gpr"), ("headers", "src"))
return out
@ -59,6 +62,9 @@
# Since some C++ source files directly included private headers in C core, we include all the
# C core headers in C++ Implementation subspec as well.
out += [file for file in grpc_private_headers(libs) if not file.startswith("third_party/nanopb/")]
out = filter_grpcpp(out)
return out
def grpcpp_private_headers(libs, filegroups):
@ -71,6 +77,8 @@
# Since some C++ source files directly included private headers in C core, we intentionally
# keep the C core headers in \a out. But we should exclude nanopb headers.
out = [file for file in out if not file.startswith("third_party/nanopb/")]
out = filter_grpcpp(out)
return out
def grpcpp_public_headers(libs, filegroups):
@ -81,6 +89,9 @@
excl_files += grpcpp_proto_files(filegroups)
out = [file for file in out if file not in excl_files]
out = filter_grpcpp(out)
return out
def grpc_test_util_files(libs):
@ -136,8 +147,14 @@
s.osx.deployment_target = '10.9'
s.requires_arc = false
# Add include prefix `grpc++` (i.e. `#include <grpc++/xxx.h>`).
s.header_dir = 'grpc++'
name = 'grpcpp'
# Use `grpcpp` as framework name so that `#include <grpcpp/xxx.h>` works when built as
# framework.
s.module_name = name
# Add include prefix `grpcpp` so that `#include <grpcpp/xxx.h>` works when built as static
# library.
s.header_dir = name
s.pod_target_xcconfig = {
'HEADER_SEARCH_PATHS' => '"$(inherited)" "$(PODS_TARGET_SRCROOT)/include"',
@ -158,7 +175,7 @@
s.default_subspecs = 'Interface', 'Implementation'
s.subspec 'Interface' do |ss|
ss.header_mappings_dir = 'include/grpc++'
ss.header_mappings_dir = 'include/grpcpp'
ss.source_files = ${ruby_multiline_list(grpcpp_public_headers(libs, filegroups), 22)}
end

Loading…
Cancel
Save