blob: 42bb0470437eac131ad21e6e05464996e180eadb [file] [edit]
load("@apple_support//rules:universal_binary.bzl", "universal_binary")
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
load("@rules_cc//cc:cc_binary.bzl", "cc_binary")
load("@rules_cc//cc:objc_library.bzl", "objc_library")
load(
"//tools/osx:xcode_version_flag.bzl",
"ios_sdk_version_flag",
"macos_sdk_version_flag",
"tvos_sdk_version_flag",
"visionos_sdk_version_flag",
"watchos_sdk_version_flag",
"xcode_version_flag",
)
package(default_visibility = ["//visibility:public"])
filegroup(
name = "srcs",
srcs = glob(["**"] + ["**/*"]),
)
filegroup(
name = "bzl_srcs",
srcs = glob(["*.bzl"]),
visibility = ["//tools:__pkg__"],
)
exports_files([
"xcode_locator.m",
"xcode_configure.bzl",
])
objc_library(
name = "xcode-locator-lib",
srcs = ["xcode_locator.m"],
sdk_frameworks = [
"CoreServices",
"Foundation",
],
target_compatible_with = ["@platforms//os:macos"],
)
cc_binary(
name = "xcode-locator-native",
target_compatible_with = ["@platforms//os:macos"],
deps = [":xcode-locator-lib"],
)
universal_binary(
name = "xcode-locator-universal",
binary = ":xcode-locator-native",
target_compatible_with = ["@platforms//os:macos"],
)
copy_file(
name = "xcode-locator-copy",
src = select({
"//src/conditions:darwin": ":xcode-locator-universal",
"//conditions:default": "xcode_locator_stub.sh",
}),
out = "xcode-locator",
allow_symlink = True,
is_executable = True,
)
# TODO(cparsons): Consolidate with config_settings under //src
config_setting(
name = "darwin_x86_64",
values = {"cpu": "darwin_x86_64"},
visibility = ["//visibility:public"],
)
config_setting(
name = "darwin_arm64",
values = {"cpu": "darwin_arm64"},
visibility = ["//visibility:public"],
)
config_setting(
name = "darwin_arm64e",
values = {"cpu": "darwin_arm64e"},
visibility = ["//visibility:public"],
)
xcode_version_flag(name = "xcode_version_flag")
[
xcode_version_flag(
name = "xcode_version_flag_{}".format(precision),
precision = precision,
)
for precision in [
"major",
"minor",
"patch",
"exact",
]
]
ios_sdk_version_flag(name = "ios_sdk_version_flag")
tvos_sdk_version_flag(name = "tvos_sdk_version_flag")
visionos_sdk_version_flag(name = "visionos_sdk_version_flag")
watchos_sdk_version_flag(name = "watchos_sdk_version_flag")
macos_sdk_version_flag(name = "macos_sdk_version_flag")