-
Notifications
You must be signed in to change notification settings - Fork 85
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This commit adds support for bzlmod. See the MODULE.bazel for changes and enable with `--enable_bzlmod`.
- Loading branch information
1 parent
f5fd958
commit ca4d59f
Showing
9 changed files
with
354 additions
and
75 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
""" | ||
Defines all the external repositories and dependencies for rules_ios. | ||
""" | ||
|
||
# Defines the rules_ios bzlmod module. | ||
# Version is updated during release to the registry. | ||
module( | ||
name = "rules_ios", | ||
version = "0", | ||
bazel_compatibility = [">=5.0.0"], | ||
compatibility_level = 1, | ||
repo_name = "build_bazel_rules_ios", | ||
) | ||
|
||
# Declare the bzlmod dependencies needed by rules_ios and users of rules_ios | ||
bazel_dep( | ||
name = "apple_support", | ||
version = "1.6.0", | ||
repo_name = "build_bazel_apple_support", | ||
) | ||
bazel_dep( | ||
name = "rules_apple", | ||
version = "2.3.0", | ||
repo_name = "build_bazel_rules_apple", | ||
) | ||
bazel_dep( | ||
name = "rules_cc", | ||
version = "0.0.6", | ||
) | ||
bazel_dep( | ||
name = "rules_python", | ||
version = "0.24.0", | ||
) | ||
bazel_dep( | ||
name = "rules_swift", | ||
version = "1.8.0", | ||
repo_name = "build_bazel_rules_swift", | ||
) | ||
|
||
# Declare the development dependencies needed for rules_ios development | ||
bazel_dep( | ||
name = "buildifier_prebuilt", | ||
version = "6.1.0", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "rules_pkg", | ||
version = "0.9.1", | ||
dev_dependency = True, | ||
) | ||
bazel_dep( | ||
name = "bazel_skylib", | ||
version = "1.4.1", | ||
dev_dependency = True, | ||
) | ||
|
||
# Load non-bzlmod dependencies from rules_ios | ||
non_module_deps = use_extension("//rules:module_extensions.bzl", "non_module_deps") | ||
use_repo( | ||
non_module_deps, | ||
"com_github_yonaskolb_xcodegen", | ||
"xchammer", | ||
) | ||
|
||
non_module_dev_deps = use_extension( | ||
"//rules:module_extensions.bzl", | ||
"non_module_dev_deps", | ||
dev_dependency = True, | ||
) | ||
use_repo( | ||
non_module_dev_deps, | ||
"GoogleMobileAdsSDK", | ||
"TensorFlowLiteC", | ||
"arm64-to-sim", | ||
"com_github_apple_swiftcollections", | ||
"tart", | ||
) | ||
|
||
# Configure Xcode | ||
xcode_configure = use_extension( | ||
"//rules:module_extensions.bzl", | ||
"xcode_configure", | ||
dev_dependency = True, | ||
) | ||
xcode_configure.configure( | ||
remote_xcode_label = "", | ||
xcode_locator_label = "//tools/toolchains/xcode_configure:xcode_locator.m", | ||
) | ||
|
||
# Load non-bzlmod dependencies used in this repo from rules_swift | ||
swift_non_module_deps = use_extension("@build_bazel_rules_swift//swift:extensions.bzl", "non_module_deps") | ||
use_repo( | ||
swift_non_module_deps, | ||
"build_bazel_rules_swift_index_import", | ||
"build_bazel_rules_swift_local_config", | ||
) | ||
|
||
# Load non-bzlmod dependencies used in this repo from rules_apple | ||
apple_non_module_deps = use_extension("@build_bazel_rules_apple//apple:extensions.bzl", "non_module_deps") | ||
use_repo( | ||
apple_non_module_deps, | ||
"xctestrunner", | ||
) | ||
|
||
# Register the Python toolchain | ||
python = use_extension("@rules_python//python/extensions:python.bzl", "python") | ||
python.toolchain( | ||
is_default = True, | ||
python_version = "3.9", | ||
) | ||
use_repo( | ||
python, | ||
"python_versions", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
# This file marks the root of the Bazel workspace. | ||
# See MODULE.bazel for dependencies and setup. | ||
# It is only used when bzlmod is enabled. | ||
# This file will generally be kept empty in favor of using MODULE.bazel fully. | ||
|
||
workspace(name = "build_bazel_rules_ios") | ||
|
||
# TODO: stardoc doesn't currently support bzlmod: https://github.com/bazelbuild/stardoc/issues/117 | ||
# Once that closes we should depend on it via the WORKSPACE file. | ||
# In the meantime, this is a workaround to at least allow building. | ||
# Note however that updating docs with bzlmod will not work until the above is resolved. | ||
# Until then use: --noenable_bzlmod | ||
load( | ||
"@bazel_tools//tools/build_defs/repo:git.bzl", | ||
"git_repository", | ||
) | ||
|
||
git_repository( | ||
name = "io_bazel_stardoc", | ||
commit = "6f274e903009158504a9d9130d7f7d5f3e9421ed", | ||
remote = "https://github.com/bazelbuild/stardoc.git", | ||
shallow_since = "1667581897 -0400", | ||
) | ||
|
||
load("@io_bazel_stardoc//:setup.bzl", "stardoc_repositories") | ||
|
||
stardoc_repositories() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
"""Definitions for bzlmod module extensions.""" | ||
|
||
load( | ||
"//rules:repositories.bzl", | ||
"rules_ios_dependencies", | ||
"rules_ios_dev_dependencies", | ||
) | ||
load( | ||
"//tools/toolchains/xcode_configure:xcode_configure.bzl", | ||
_xcode_configure = "xcode_configure", | ||
) | ||
|
||
def _non_module_deps_impl(_): | ||
rules_ios_dependencies( | ||
load_xchammer_dependencies = True, | ||
load_bzlmod_dependencies = False, | ||
) | ||
|
||
non_module_deps = module_extension(implementation = _non_module_deps_impl) | ||
|
||
def _non_module_dev_deps_impl(_): | ||
rules_ios_dev_dependencies(load_bzlmod_dependencies = False) | ||
|
||
non_module_dev_deps = module_extension(implementation = _non_module_dev_deps_impl) | ||
|
||
def _xcode_configure_impl(module_ctx): | ||
for mod in module_ctx.modules: | ||
for xcode_configure_attr in mod.tags.configure: | ||
_xcode_configure( | ||
remote_xcode_label = xcode_configure_attr.remote_xcode_label, | ||
xcode_locator_label = xcode_configure_attr.xcode_locator_label, | ||
) | ||
|
||
xcode_configure = module_extension( | ||
implementation = _xcode_configure_impl, | ||
tag_classes = { | ||
"configure": tag_class( | ||
attrs = { | ||
"remote_xcode_label": attr.string(mandatory = True), | ||
"xcode_locator_label": attr.string(mandatory = True), | ||
}, | ||
), | ||
}, | ||
) |
Oops, something went wrong.