diff --git a/js/private/BUILD.bazel b/js/private/BUILD.bazel index f427f79a0e..390635dfd2 100644 --- a/js/private/BUILD.bazel +++ b/js/private/BUILD.bazel @@ -24,9 +24,9 @@ config_setting( visibility = ["//visibility:public"], ) -config_setting( +alias( name = "experimental_allow_unresolved_symlinks", - values = {"experimental_allow_unresolved_symlinks": "true"}, + actual = "@aspect_config_settings//:allow_unresolved_symlinks", visibility = ["//visibility:public"], ) diff --git a/js/private/repository_utils.bzl b/js/private/repository_utils.bzl new file mode 100644 index 0000000000..06365060fc --- /dev/null +++ b/js/private/repository_utils.bzl @@ -0,0 +1,24 @@ +""" +Repository rule utilities. +""" + +load("@bazel_skylib//lib:versions.bzl", "versions") + +def _config_settings_impl(rctx): + prop = "experimental_allow_unresolved_symlinks" + if versions.get() == "" or versions.is_at_least("6.3", versions.get()): + prop = "allow_unresolved_symlinks" + + rctx.file("BUILD.bazel", """# @generated by @aspect_rules_js//js/private:repository_utils.bzl + +config_setting( + name = "allow_unresolved_symlinks", + values = {values}, + visibility = ["//visibility:public"], +) +""".format(values = dict([(prop, "true")]))) + +config_settings = repository_rule( + implementation = _config_settings_impl, + attrs = {}, +) diff --git a/js/repositories.bzl b/js/repositories.bzl index 70955389c1..e3527ab57f 100644 --- a/js/repositories.bzl +++ b/js/repositories.bzl @@ -5,6 +5,7 @@ See https://docs.bazel.build/versions/main/skylark/deploying.html#dependencies """ load("//js/private:maybe.bzl", http_archive = "maybe_http_archive") +load("//js/private:repository_utils.bzl", _config_settings = "config_settings") def rules_js_dependencies(): http_archive( @@ -25,3 +26,7 @@ def rules_js_dependencies(): strip_prefix = "bazel-lib-1.32.1", url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.32.1/bazel-lib-v1.32.1.tar.gz", ) + + _config_settings( + name = "aspect_config_settings", + )