Change existing build system for CFStream
diff --git a/templates/gRPC-Core.podspec.template b/templates/gRPC-Core.podspec.template
index af97d81..ff19aa3 100644
--- a/templates/gRPC-Core.podspec.template
+++ b/templates/gRPC-Core.podspec.template
@@ -68,6 +68,14 @@
     excl = grpc_private_files(libs)
     return [file for file in out if not file in excl]
 
+  def cfstream_private_headers(libs):
+    out = grpc_lib_files(libs, ("grpc_cfstream",), ("headers",))
+    return out
+
+  def cfstream_private_files(libs):
+    out = grpc_lib_files(libs, ("grpc_cfstream",), ("src", "headers"))
+    return out
+
   def ruby_multiline_list(files, indent):
     return (',\n' + indent*' ').join('\'%s\'' % f for f in files)
   %>
@@ -175,6 +183,16 @@
       ss.private_header_files = ${ruby_multiline_list(grpc_private_headers(libs), 30)}
     end
 
+    s.subspec 'CFStream-Implementation' do |ss|
+      ss.header_mappings_dir = '.'
+      ss.dependency "#{s.name}/Implementation", version
+      ss.pod_target_xcconfig = {
+        'GCC_PREPROCESSOR_DEFINITIONS' => 'GRPC_CFSTREAM=1'
+      }
+      ss.source_files = ${ruby_multiline_list(cfstream_private_files(filegroups), 22)}
+      ss.private_header_files = ${ruby_multiline_list(cfstream_private_headers(filegroups), 30)}
+    end
+
     s.subspec 'Cronet-Interface' do |ss|
       ss.header_mappings_dir = 'include/grpc'
       ss.source_files = ${ruby_multiline_list(grpc_cronet_public_headers(libs), 22)}