blob: 9f5003ed2d5820a4421d7bac934ed63889aa643e [file] [log] [blame]
# 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.
licenses(["notice"]) # 3-clause BSD
package(default_visibility = ["//visibility:public"])
load(
"//src/objective-c:grpc_objc_internal_library.bzl",
"grpc_objc_examples_library",
"local_objc_grpc_library",
"proto_library_objc_wrapper",
)
load("@build_bazel_rules_apple//apple:ios.bzl", "ios_application")
load("@build_bazel_rules_apple//apple:tvos.bzl", "tvos_application")
load("@build_bazel_rules_apple//apple:watchos.bzl", "watchos_application", "watchos_extension")
proto_library_objc_wrapper(
name = "messages_proto",
srcs = ["RemoteTestClient/messages.proto"],
)
proto_library_objc_wrapper(
name = "test_proto",
srcs = ["RemoteTestClient/test.proto"],
use_well_known_protos = True,
deps = [":messages_proto"],
)
# use objc_grpc_library in bazel:objc_grpc_library.bzl when developing outside the repo
local_objc_grpc_library(
name = "RemoteTest",
srcs = ["RemoteTestClient/test.proto"],
use_well_known_protos = True,
deps = [
"//src/objective-c/examples:test_proto",
],
)
# Proof that without this works without srcs
local_objc_grpc_library(
name = "test_objc",
use_well_known_protos = True,
deps = [
"//src/objective-c/examples:test_proto",
],
)
grpc_objc_examples_library(
name = "Sample-lib",
srcs = glob(["Sample/Sample/**/*.m"]),
hdrs = glob(["Sample/Sample/**/*.h"]),
data = glob([
"Sample/Sample/Base.lproj/**",
"Sample/Sample/Images.xcassets/**",
]),
)
ios_application(
name = "Sample",
bundle_id = "io.grpc.Sample",
families = [
"iphone",
"ipad",
],
infoplists = ["Sample/Sample/Info.plist"],
minimum_os_version = "8.0",
visibility = ["//visibility:public"],
deps = ["Sample-lib"],
)
grpc_objc_examples_library(
name = "InterceptorSample-lib",
srcs = glob(["InterceptorSample/InterceptorSample/**/*.m"]),
hdrs = glob(["InterceptorSample/InterceptorSample/**/*.h"]),
data = glob([
"InterceptorSample/InterceptorSample/Base.lproj/**",
"InterceptorSample/InterceptorSample/Images.xcassets/**",
]),
)
ios_application(
name = "InterceptorSample",
bundle_id = "io.grpc.InterceptorSample",
families = [
"iphone",
"ipad",
],
infoplists = ["InterceptorSample/InterceptorSample/Info.plist"],
minimum_os_version = "9.0", # Safe Area Layout Guide used
deps = ["InterceptorSample-lib"],
)
grpc_objc_examples_library(
name = "tvOS-sample-lib",
srcs = glob(["tvOS-sample/tvOS-sample/**/*.m"]),
hdrs = glob(["tvOS-sample/tvOS-sample/**/*.h"]),
data = glob([
"tvOS-sample/tvOS-sample/Base.lproj/**",
"tvOS-sample/tvOS-sample/Images.xcassets/**",
]),
)
# c-ares does not support tvOS CPU architecture with Bazel yet
tvos_application(
name = "tvOS-sample",
bundle_id = "io.grpc.tvOS-sample",
infoplists = ["tvOS-sample/tvOS-sample/Info.plist"],
minimum_os_version = "10.0",
deps = [":tvOS-sample-lib"],
)
grpc_objc_examples_library(
name = "watchOS-sample-iOS-lib",
srcs = glob(["watchOS-sample/watchOS-sample/**/*.m"]),
hdrs = glob(["watchOS-sample/watchOS-sample/**/*.h"]),
data = glob([
"watchOS-sample/watchOS-sample/Base.lproj/**",
"watchOS-sample/watchOS-sample/Images.xcassets/**",
]),
)
grpc_objc_examples_library(
name = "watchOS-sample-extension-lib",
srcs = glob(["watchOS-sample/WatchKit-Extention/**/*.m"]),
hdrs = glob(["watchOS-sample/WatchKit-Extension/**/*.h"]),
sdk_frameworks = [
"WatchConnectivity",
"WatchKit",
],
)
ios_application(
name = "watchOS-sample",
bundle_id = "io.grpc.watchOS-sample",
families = ["iphone"],
infoplists = ["watchOS-sample/watchOS-sample/Info.plist"],
minimum_os_version = "9.0", # Safe Area Layout Guide used
watch_application = "watchOS-sample-watchApp",
deps = [":watchOS-sample-iOS-lib"],
)
# c-ares does not support watchOS CPU architecture with Bazel yet
watchos_application(
name = "watchOS-sample-watchApp",
bundle_id = "io.grpc.watchOS-sample.watchkitapp",
extension = ":watchOS-sample-extension",
infoplists = ["watchOS-sample/WatchKit-App/Info.plist"],
minimum_os_version = "4.0",
storyboards = ["watchOS-sample/WatchKit-App/Base.lproj/Interface.storyboard"],
)
watchos_extension(
name = "watchOS-sample-extension",
bundle_id = "io.grpc.watchOS-sample.watchkitapp.watchkitextension",
infoplists = ["watchOS-sample/WatchKit-Extension/Info.plist"],
minimum_os_version = "4.0",
deps = [":watchOS-sample-extension-lib"],
)