diff --git a/MODULE.bazel b/MODULE.bazel index c9a52e058..25d41769e 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -39,29 +39,37 @@ module( # Only direct dependencies need to be listed below. # Please keep the versions in sync with the versions in the WORKSPACE file. -bazel_dep(name = "abseil-cpp", - version = "20240116.2") +bazel_dep( + name = "abseil-cpp", + version = "20240116.2", +) +bazel_dep( + name = "platforms", + version = "0.0.10", +) +bazel_dep( + name = "re2", + version = "2024-07-02", +) -bazel_dep(name = "platforms", - version = "0.0.10") - -bazel_dep(name = "re2", - version = "2024-07-02") - -bazel_dep(name = "rules_python", - version = "0.34.0", - dev_dependency = True) +bazel_dep( + name = "rules_python", + version = "0.34.0", + dev_dependency = True, +) # https://rules-python.readthedocs.io/en/stable/toolchains.html#library-modules-with-dev-only-python-usage python = use_extension( "@rules_python//python/extensions:python.bzl", "python", - dev_dependency = True + dev_dependency = True, +) +python.toolchain( + ignore_root_user_error = True, + is_default = True, + python_version = "3.12", ) -python.toolchain(python_version = "3.12", - is_default = True, - ignore_root_user_error = True) - -fake_fuchsia_sdk = use_repo_rule("//:fake_fuchsia_sdk.bzl", "fake_fuchsia_sdk") -fake_fuchsia_sdk(name = "fuchsia_sdk") +fuchsia_sdk = use_extension("//:fake_fuchsia_sdk.bzl", "fuchsia_sdk") +fuchsia_sdk.create_fake() +use_repo(fuchsia_sdk, "fuchsia_sdk") diff --git a/fake_fuchsia_sdk.bzl b/fake_fuchsia_sdk.bzl index 2024dc6c4..e4bb70844 100644 --- a/fake_fuchsia_sdk.bzl +++ b/fake_fuchsia_sdk.bzl @@ -31,3 +31,21 @@ fake_fuchsia_sdk = repository_rule( ), }, ) + +_create_fake = tag_class() + +def _fuchsia_sdk_impl(module_ctx): + create_fake_sdk = False + for mod in module_ctx.modules: + for _ in mod.tags.create_fake: + create_fake_sdk = True + + if create_fake_sdk: + fake_fuchsia_sdk(name = "fuchsia_sdk") + + return module_ctx.extension_metadata(reproducible = True) + +fuchsia_sdk = module_extension( + implementation = _fuchsia_sdk_impl, + tag_classes = {"create_fake": _create_fake}, +)