# gRPC Bazel BUILD file. # # Copyright 2019 gRPC authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. load("//bazel:grpc_build_system.bzl", "grpc_generate_objc_one_off_targets", "grpc_objc_library") load("@build_bazel_rules_apple//apple:resources.bzl", "apple_resource_bundle") licenses(["notice"]) package(default_visibility = ["//visibility:public"]) exports_files(["LICENSE"]) grpc_generate_objc_one_off_targets() grpc_objc_library( name = "rx_library_headers", hdrs = glob([ "RxLibrary/*.h", ]), includes = ["."], ) grpc_objc_library( name = "rx_library", srcs = glob([ "RxLibrary/*.m", ]), includes = ["."], deps = [ ":rx_library_headers", ":rx_library_private", ], ) grpc_objc_library( name = "rx_library_private", srcs = glob([ "RxLibrary/private/*.m", ]), textual_hdrs = glob([ "RxLibrary/private/*.h", ]), visibility = ["//visibility:private"], ) grpc_objc_library( name = "grpc_objc_interface_legacy", hdrs = [ "GRPCClient/GRPCCall+ChannelArg.h", "GRPCClient/GRPCCall+ChannelCredentials.h", "GRPCClient/GRPCCall+Cronet.h", "GRPCClient/GRPCCall+OAuth2.h", "GRPCClient/GRPCCall+Tests.h", "GRPCClient/GRPCCallLegacy.h", ], deps = [ ":grpc_objc_interface_types", ":rx_library_headers", ], ) grpc_objc_library( name = "grpc_objc_interface_types", srcs = [ "GRPCClient/GRPCTypes.m", ], hdrs = [ "GRPCClient/GRPCTypes.h", ], ) grpc_objc_library( name = "grpc_objc_interface", srcs = [ "GRPCClient/GRPCCall.m", "GRPCClient/GRPCCall+Interceptor.m", "GRPCClient/GRPCCallOptions.m", "GRPCClient/GRPCInterceptor.m", "GRPCClient/GRPCTransport.m", "GRPCClient/private/GRPCTransport+Private.m", ], hdrs = [ "GRPCClient/GRPCCall.h", "GRPCClient/GRPCCall+Interceptor.h", "GRPCClient/GRPCCallOptions.h", "GRPCClient/GRPCDispatchable.h", "GRPCClient/GRPCInterceptor.h", "GRPCClient/GRPCTransport.h", "GRPCClient/internal/GRPCCallOptions+Internal.h", "GRPCClient/version.h", ], includes = ["."], textual_hdrs = [ "GRPCClient/private/GRPCTransport+Private.h", ], deps = [ ":grpc_objc_interface_legacy", ], ) grpc_objc_library( name = "grpc_objc_client", srcs = [ "GRPCClient/GRPCCall+ChannelArg.m", "GRPCClient/GRPCCall+ChannelCredentials.m", "GRPCClient/GRPCCall+Cronet.m", "GRPCClient/GRPCCall+OAuth2.m", "GRPCClient/GRPCCall+Tests.m", "GRPCClient/GRPCCallLegacy.m", ] + glob(["GRPCClient/private/GRPCCore/*.m"]), hdrs = [ "GRPCClient/GRPCCall+ChannelArg.h", "GRPCClient/GRPCCall+ChannelCredentials.h", "GRPCClient/GRPCCall+Cronet.h", "GRPCClient/GRPCCall+OAuth2.h", "GRPCClient/GRPCCall+Tests.h", ], data = [":gRPCCertificates"], includes = ["."], textual_hdrs = glob(["GRPCClient/private/GRPCCore/*.h"]), deps = [ ":grpc_objc_interface", ":grpc_objc_interface_legacy", ":rx_library", "//:grpc_objc", ], ) # TODO (mxyan): Switch "name" and "actual" when import is done # Some internal Swift projects will need to be updated with the new name alias( name = "grpc_objc_client_core", actual = "grpc_objc_client", ) grpc_objc_library( name = "proto_objc_rpc_legacy_header", hdrs = [ "ProtoRPC/ProtoRPCLegacy.h", ], includes = ["."], ) grpc_objc_library( name = "proto_objc_rpc_v2", srcs = [ "ProtoRPC/ProtoMethod.m", "ProtoRPC/ProtoRPC.m", "ProtoRPC/ProtoService.m", ], hdrs = [ "ProtoRPC/ProtoMethod.h", "ProtoRPC/ProtoRPC.h", "ProtoRPC/ProtoService.h", ], defines = ["GPB_USE_PROTOBUF_FRAMEWORK_IMPORTS=0"], includes = ["."], deps = [ ":grpc_objc_interface", ":proto_objc_rpc_legacy_header", "@com_google_protobuf//:protobuf_objc", ], ) grpc_objc_library( name = "proto_objc_rpc", srcs = [ "ProtoRPC/ProtoRPCLegacy.m", "ProtoRPC/ProtoServiceLegacy.m", ], hdrs = [ "ProtoRPC/ProtoMethod.h", "ProtoRPC/ProtoRPC.h", "ProtoRPC/ProtoRPCLegacy.h", "ProtoRPC/ProtoService.h", ], deps = [ ":grpc_objc_client_core", ":proto_objc_rpc_legacy_header", ":proto_objc_rpc_v2", ":rx_library", "@com_google_protobuf//:protobuf_objc", ], ) apple_resource_bundle( # The choice of name is signicant here, since it determines the bundle name. name = "gRPCCertificates", resources = ["//:etc/roots.pem"], ) # Internal target combining grpc_objc_client_core and proto_objc_rpc for testing grpc_objc_library( name = "grpc_objc_client_core_internal_testing", srcs = [ "GRPCClient/GRPCCall+ChannelArg.m", "GRPCClient/GRPCCall+ChannelCredentials.m", "GRPCClient/GRPCCall+Cronet.m", "GRPCClient/GRPCCall+OAuth2.m", "GRPCClient/GRPCCall+Tests.m", "GRPCClient/GRPCCallLegacy.m", "GRPCClient/internal_testing/GRPCCall+InternalTests.m", ] + glob(["GRPCClient/private/GRPCCore/*.m"]), hdrs = [ "GRPCClient/GRPCCall+ChannelArg.h", "GRPCClient/GRPCCall+ChannelCredentials.h", "GRPCClient/GRPCCall+Cronet.h", "GRPCClient/GRPCCall+OAuth2.h", "GRPCClient/GRPCCall+Tests.h", "GRPCClient/internal_testing/GRPCCall+InternalTests.h", ], data = [":gRPCCertificates"], defines = [ "GRPC_TEST_OBJC=1", ], includes = ["."], textual_hdrs = glob(["GRPCClient/private/GRPCCore/*.h"]), deps = [ ":grpc_objc_interface", ":grpc_objc_interface_legacy", ":rx_library", "//:grpc_objc", ], ) grpc_objc_library( name = "proto_objc_rpc_internal_testing", srcs = [ "ProtoRPC/ProtoRPCLegacy.m", "ProtoRPC/ProtoServiceLegacy.m", ], hdrs = [ "ProtoRPC/ProtoMethod.h", "ProtoRPC/ProtoRPC.h", "ProtoRPC/ProtoRPCLegacy.h", "ProtoRPC/ProtoService.h", ], deps = [ ":grpc_objc_client_core_internal_testing", ":proto_objc_rpc_legacy_header", ":proto_objc_rpc_v2", ":rx_library", "@com_google_protobuf//:protobuf_objc", ], ) alias( name = "grpc_objc_client_internal_testing", actual = "proto_objc_rpc_internal_testing", )