Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 28 additions & 28 deletions MODULE.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -593,10 +593,10 @@ single_version_override(
version = "3.7.2",
)

dotnet_tools = use_extension("//dotnet:repos.bzl", "dotnet_tools")
dotnet_tools = use_extension("//dotnet:extensions.bzl", "dotnet_tools")
use_repo(dotnet_tools, "dx_libfuzzer_dotnet", "rules_dotnet")

dotnet = use_extension("//dotnet:extensions.bzl", "dotnet")
dotnet = use_extension("//dotnet:rules_dotnet.bzl", "dotnet")
dotnet.toolchain(dotnet_version = "10.0.403")
dotnet.toolchain(
name = "dotnet_apphost",
Expand Down Expand Up @@ -796,7 +796,7 @@ gcc_toolchains.toolchain(
)
use_repo(gcc_toolchains, "custom_gcc_x86_64")

gcc = use_extension("//cc/toolchains:repos.bzl", "gcc")
gcc = use_extension("//cc/toolchains:extensions.bzl", "gcc")
use_repo(gcc, "dx_gcc_linux_aarch64", "dx_gcc_linux_aarch64_cross", "dx_gcc_linux_x86_64")

protoc_prebuilt = use_extension("@protobuf//bazel/private/oss/toolchains/prebuilt:protoc_extension.bzl", "protoc")
Expand All @@ -820,10 +820,10 @@ register_toolchains("@dx_powershell_toolchains//:all")
bazel_dep(name = "bazel_features", version = "1.54.1")

# Pinned SimpleCov gems Ruby tests load under `bazel coverage`; consumers need them (#3954).
ruby_coverage = use_extension("//ruby/coverage:repos.bzl", "ruby_coverage")
ruby_coverage = use_extension("//ruby/coverage:extensions.bzl", "ruby_coverage")
use_repo(ruby_coverage, "dx_ruby_bench_gems", "dx_ruby_coverage_gems")

ruby_tools = use_extension("//ruby/toolchain:repos.bzl", "ruby_tools")
ruby_tools = use_extension("//ruby/toolchain:extensions.bzl", "ruby_tools")
use_repo(ruby_tools, "dx_sorbet", "rules_ruby")

# The pinned Ruby is declared in families/ruby; deploy tests read its files.
Expand Down Expand Up @@ -925,10 +925,10 @@ use_repo(
dx_swift_linux_x86_64 = "dx_swift_ubuntu22.04",
)

swift_host = use_extension("//swift/toolchain:repos.bzl", "swift_host")
swift_host = use_extension("//swift/toolchain:extensions.bzl", "swift_host")
use_repo(swift_host, "dx_swift_host")

swift_format_macos = use_extension("//swift/toolchain:repos.bzl", "swift_format_macos")
swift_format_macos = use_extension("//swift/toolchain:extensions.bzl", "swift_format_macos")
use_repo(swift_format_macos, "dx_swift_format_macos_arm64")

# floor: equals tested; dev only, for the swift-app fixture packages
Expand Down Expand Up @@ -1008,13 +1008,13 @@ use_repo(
"bsd_tar_toolchains_windows_arm64",
)

dart_tools = use_extension("//dart:repos.bzl", "dart_tools")
dart_tools = use_extension("//dart:extensions.bzl", "dart_tools")
use_repo(dart_tools, "dx_rules_dart_pub")

# The dart_codegen fixture stays in core: rules_dart cannot place outputs for
# a source in an external repository, so it only works with core as root.
pub = use_extension(
"//dart:extensions.bzl",
"//dart:pub.bzl",
"pub",
dev_dependency = True,
)
Expand All @@ -1026,7 +1026,7 @@ pub.from_lock(
use_repo(pub, "dx_dart_deps")

# pub_deploy's api_compat check runs this pinned dart_apitool.
pub_tools = use_extension("//dart:extensions.bzl", "pub")
pub_tools = use_extension("//dart:pub.bzl", "pub")
pub_tools.from_lock(
name = "dart_apitool_deps",
lock = "//dart/tools/dart_apitool:pubspec.lock",
Expand Down Expand Up @@ -1169,7 +1169,7 @@ cuda.toolkit(
)
use_repo(cuda, "cuda")

erlang = use_extension("//erlang/toolchain:repos.bzl", "erlang")
erlang = use_extension("//erlang/toolchain:extensions.bzl", "erlang")
use_repo(erlang, "dx_elvis", "dx_erlang_argparse", "dx_erlfmt", "dx_erlperf", "dx_otp_windows_arm64", "dx_otp_windows_x86_64", "rules_erlang")

elixir = use_extension("//elixir/toolchain:extensions.bzl", "elixir")
Expand Down Expand Up @@ -1224,7 +1224,7 @@ ocaml.annotation(
)
use_repo(ocaml, "dx_ocaml_dune", "dx_ocaml_toolchains", "ocaml_app", "ocaml_fuzz", "rules_ocaml")

fortran = use_extension("//fortran/toolchain:repos.bzl", "fortran")
fortran = use_extension("//fortran/toolchain:extensions.bzl", "fortran")
use_repo(fortran, "rules_fortran")

# floor: equals tested
Expand Down Expand Up @@ -1252,10 +1252,10 @@ single_version_override(
version = "1.0.0",
)

lua_tools = use_extension("//lua/toolchain:repos.bzl", "lua")
lua_tools = use_extension("//lua/toolchain:extensions.bzl", "lua")
use_repo(lua_tools, "dx_luacov", "dx_luacov_reporter_lcov", "dx_ldoc", "dx_luafilesystem", "dx_luals", "dx_penlight")

php = use_extension("//php/toolchain:repos.bzl", "php")
php = use_extension("//php/toolchain:extensions.bzl", "php")
use_repo(php, "dx_composer", "dx_phpbench", "dx_phpcs", "dx_phpdocumentor", "dx_phpstan", "dx_phpstan_strict_rules", "dx_phpunit", "dx_unused_public", "dx_webmozart_assert")

haskell = use_extension("//haskell/toolchain:extensions.bzl", "haskell")
Expand All @@ -1281,7 +1281,7 @@ haskell.lock(
)
use_repo(haskell, "dx_ghc_windows_x86_64", "dx_haskell_toolchains", "haskell_app_hackage", "haskell_bench_hackage", "haskell_exe_hackage", "haskell_nixfmt_hackage", "haskell_weeder_hackage", "rules_haskell")

d = use_extension("//d/toolchain:repos.bzl", "d")
d = use_extension("//d/toolchain:extensions.bzl", "d")
use_repo(d, "dx_d_containers", "dx_d_dcd", "dx_d_inifiled", "dx_d_ldc_linux_x86_64", "dx_d_ldc_linux_arm64", "dx_d_ldc_macos_arm64", "dx_d_ldc_windows_x86_64", "dx_d_libddoc", "dx_d_libdparse", "dx_d_toolchains", "rules_d")

register_toolchains("@dx_d_toolchains//:all")
Expand Down Expand Up @@ -2082,22 +2082,22 @@ _web_consumer_repo(

_http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

semver_checks = use_extension("//deploy/rules/pins:repos.bzl", "semver_checks")
semver_checks = use_extension("//deploy/rules/pins:extensions.bzl", "semver_checks")
use_repo(semver_checks, "cargo_semver_checks_linux_arm64", "cargo_semver_checks_linux_x86_64", "cargo_semver_checks_macos_arm64", "cargo_semver_checks_windows_x86_64")

japicmp = use_extension("//deploy/rules/pins:repos.bzl", "japicmp")
japicmp = use_extension("//deploy/rules/pins:extensions.bzl", "japicmp")
use_repo(japicmp, "japicmp_jar")

apicompat = use_extension("//deploy/rules/pins:repos.bzl", "apicompat")
apicompat = use_extension("//deploy/rules/pins:extensions.bzl", "apicompat")
use_repo(apicompat, "apicompat_tool")

cosign = use_extension("//deploy/release:repos.bzl", "cosign", dev_dependency = True)
cosign = use_extension("//deploy/release:extensions.bzl", "cosign", dev_dependency = True)
use_repo(cosign, "cosign_linux_arm64", "cosign_linux_x86_64", "cosign_macos_arm64", "cosign_windows_x86_64")

bazel_version = use_extension("//tools/bazelrc:repos.bzl", "bazel_version")
bazel_version = use_extension("//tools/bazelrc:extensions.bzl", "bazel_version")
use_repo(bazel_version, "dx_bazel_version")

nested_bazel = use_extension("//tools/testing:repos.bzl", "nested_bazel", dev_dependency = True)
nested_bazel = use_extension("//tools/testing:extensions.bzl", "nested_bazel", dev_dependency = True)
use_repo(nested_bazel, "nested_bazel_darwin_arm64", "nested_bazel_darwin_x86_64", "nested_bazel_linux_arm64", "nested_bazel_linux_x86_64", "nested_bazel_windows_x86_64")

_http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file")
Expand Down Expand Up @@ -2638,13 +2638,13 @@ use_repo(
"jvm_spotbugs_dist",
)

yard = use_extension("//tools/docs/ruby:repos.bzl", "yard", dev_dependency = True)
yard = use_extension("//tools/docs/ruby:extensions.bzl", "yard", dev_dependency = True)
use_repo(yard, "dx_yard")

doxygen = use_extension("//tools/docs/cc:repos.bzl", "doxygen", dev_dependency = True)
doxygen = use_extension("//tools/docs/cc:extensions.bzl", "doxygen", dev_dependency = True)
use_repo(doxygen, "dx_doxygen")

playwright = use_extension("//typescript/playwright:repos.bzl", "playwright")
playwright = use_extension("//typescript/playwright:extensions.bzl", "playwright")
use_repo(
playwright,
"dx_playwright_chromium",
Expand All @@ -2653,7 +2653,7 @@ use_repo(
"dx_playwright_chromium_macos_arm64",
)

firefox = use_extension("//tools/docs/site/browser:repos.bzl", "firefox", dev_dependency = True)
firefox = use_extension("//tools/docs/site/browser:extensions.bzl", "firefox", dev_dependency = True)
use_repo(
firefox,
"dx_firefox",
Expand Down Expand Up @@ -2706,13 +2706,13 @@ use_repo(windows_msvc_runtime, "msvc_runtime")
windows_sdk_ext = use_extension("@windows_support//windows:extensions.bzl", "windows_sdk")
use_repo(windows_sdk_ext, "windows_sdk")

msvc = use_extension("//cc/toolchains/msvc:repos.bzl", "msvc")
msvc = use_extension("//cc/toolchains/msvc:extensions.bzl", "msvc")
use_repo(msvc, "dx_msvc")

msvc_dev = use_extension("//cc/toolchains/msvc:repos.bzl", "msvc", dev_dependency = True)
msvc_dev = use_extension("//cc/toolchains/msvc:extensions.bzl", "msvc", dev_dependency = True)
msvc_dev.license(accept = ["visual-studio-build-tools"])

cuda_license_dev = use_extension("@rules_dx_cuda//toolchain:repos.bzl", "cuda_license", dev_dependency = True)
cuda_license_dev = use_extension("@rules_dx_cuda//toolchain:extensions.bzl", "cuda_license", dev_dependency = True)
cuda_license_dev.license(accept = ["cuda-eula"])

qt_sdk = use_extension("//qt/sdk:extensions.bzl", "qt_sdk", dev_dependency = True)
Expand Down
10 changes: 5 additions & 5 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion cc/rules/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ common --@rules_dx//cc/toolchains:compiler=msvc
It supports a Windows x86_64 host that targets Windows x86_64. Accept the license in the root `MODULE.bazel`:

```text
msvc = use_extension("@rules_dx//cc/toolchains/msvc:repos.bzl", "msvc")
msvc = use_extension("@rules_dx//cc/toolchains/msvc:extensions.bzl", "msvc")
msvc.license(accept = ["visual-studio-build-tools"])
```

Expand Down
1 change: 1 addition & 0 deletions cc/toolchains/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,7 @@ real_source_target(
"identity_tests.bzl",
"pins.bzl",
"repos.bzl",
"extensions.bzl",
"select.bzl",
"unavailable.bzl",
"gcc_unsupported_tests.bzl",
Expand Down
61 changes: 61 additions & 0 deletions cc/toolchains/extensions.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
"""Module extension for cc/toolchains."""

load("@gcc_toolchain//toolchain:defs.bzl", "gcc_declare_toolchain")
load(":pins.bzl", "GCC_GLIBC", "GCC_LINUX_AARCH64", "GCC_LINUX_X86_64", "GCC_LINUX_X86_64_TO_AARCH64", "GCC_VERSION")


_LDFLAGS = ["-static-libasan", "-static-libubsan", "-lm"]


_EXTRA_ENABLED = [str(Label("//cc/toolchains/gcc_features:dx_static_cxx_runtime"))]


_EXTRA_KNOWN = [
str(Label("//cc/toolchains/gcc_features:dynamic_libstdcxx")),
str(Label("//cc/toolchains/gcc_features:static_link_cpp_runtimes")),
str(Label("//cc/toolchains/gcc_features:static_linking_mode")),
str(Label("//cc/toolchains/gcc_features:dynamic_linking_mode")),
]


def _gcc_impl(_mctx):
gcc_declare_toolchain(
name = "dx_gcc_linux_x86_64",
target_arch = "x86_64",
gcc_version = GCC_VERSION,
gcc_versions = json.encode({GCC_VERSION: {"x86_64": GCC_LINUX_X86_64}}),
enable_fortran = False,
target_libc = GCC_GLIBC,
extra_ldflags = _LDFLAGS,
extra_enabled_features = _EXTRA_ENABLED,
extra_known_features = _EXTRA_KNOWN,
)
gcc_declare_toolchain(
name = "dx_gcc_linux_aarch64_cross",
target_arch = "aarch64",
gcc_version = GCC_VERSION,
gcc_versions = json.encode({GCC_VERSION: {"aarch64": GCC_LINUX_X86_64_TO_AARCH64}}),
enable_fortran = False,
target_libc = GCC_GLIBC,
extra_ldflags = _LDFLAGS,
extra_enabled_features = _EXTRA_ENABLED,
extra_known_features = _EXTRA_KNOWN,
)
gcc_declare_toolchain(
name = "dx_gcc_linux_aarch64",
target_arch = "aarch64",
gcc_version = GCC_VERSION,
gcc_versions = json.encode({GCC_VERSION: {"aarch64": GCC_LINUX_AARCH64}}),
enable_fortran = False,
target_libc = GCC_GLIBC,
extra_ldflags = _LDFLAGS,
extra_enabled_features = _EXTRA_ENABLED,
extra_known_features = _EXTRA_KNOWN,
)
return _mctx.extension_metadata(reproducible = True)


gcc = module_extension(
implementation = _gcc_impl,
doc = "Declares the pinned GCC Linux toolchain repositories (x86_64, x86_64-to-aarch64 cross and native aarch64).",
)
1 change: 1 addition & 0 deletions cc/toolchains/msvc/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ real_source_target(
"BUILD.bazel",
"layout.bzl",
"repos.bzl",
"extensions.bzl",
"repos_tests.bzl",
"subject.bzl",
"tests.bzl",
Expand Down
29 changes: 29 additions & 0 deletions cc/toolchains/msvc/extensions.bzl
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
"""Module extension for cc/toolchains/msvc."""

load("//cc/toolchains:pins.bzl", "MSVC_TOOLSET_VERSION", "WINDOWS_SDK_INCLUDE_VERSION")
load("//libs/starlark:license.bzl", "accepted", "license_tag")
load("//libs/starlark:repo.bzl", "hub_repo")
load(":repos.bzl", "HUB_NAME", "LICENSE", "LICENSE_URL", "hub_build")


def _extension_impl(mctx):
if accepted(mctx, "dx_msvc", LICENSE):
files = {
"BUILD.bazel": hub_build(True, Label("@msvc_runtime//:BUILD.bazel").repo_name, Label("@windows_sdk//:BUILD.bazel").repo_name),
"NOTICE": "Microsoft Visual C++ and Windows SDK files, licensed under {}\nMSVC {}\nWindows SDK {}\n".format(LICENSE_URL, MSVC_TOOLSET_VERSION, WINDOWS_SDK_INCLUDE_VERSION),
"REPO.bazel": "",
}
else:
files = {"BUILD.bazel": hub_build(False)}
hub_repo(name = HUB_NAME, files = files)
return mctx.extension_metadata(reproducible = True)


_license = license_tag("Accepts the Visual Studio Build Tools license for this build.")


msvc = module_extension(
implementation = _extension_impl,
doc = "Declares the MSVC toolchain hub repository.",
tag_classes = {"license": _license},
)
23 changes: 1 addition & 22 deletions cc/toolchains/msvc/repos.bzl
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
"""MSVC toolchains over the windows_support repositories behind a license acceptance."""

load("//cc/toolchains:pins.bzl", "MSVC_TOOLSET_VERSION", "VC_REDIST_VERSION", "WINDOWS_SDK_INCLUDE_VERSION")
load("//libs/starlark:license.bzl", "accepted", "license_tag", "unaccepted")
load("//libs/starlark:repo.bzl", "hub_repo")
load("//libs/starlark:license.bzl", "accepted", "unaccepted")
load(":layout.bzl", "SUPPORTED_CELLS")

HUB_NAME = "dx_msvc"
Expand Down Expand Up @@ -84,23 +83,3 @@ def hub_build(accepted, vc_repo = "", sdk_repo = "", msvc_version = MSVC_TOOLSET
else:
text += 'cc_toolchain_unavailable(\n name = "msvc_vcruntime",\n error = {},\n)\n\n'.format(json.encode(UNACCEPTED))
return text.rstrip("\n") + "\n"

def _extension_impl(mctx):
if accepted(mctx, "dx_msvc", LICENSE):
files = {
"BUILD.bazel": hub_build(True, Label("@msvc_runtime//:BUILD.bazel").repo_name, Label("@windows_sdk//:BUILD.bazel").repo_name),
"NOTICE": "Microsoft Visual C++ and Windows SDK files, licensed under {}\nMSVC {}\nWindows SDK {}\n".format(LICENSE_URL, MSVC_TOOLSET_VERSION, WINDOWS_SDK_INCLUDE_VERSION),
"REPO.bazel": "",
}
else:
files = {"BUILD.bazel": hub_build(False)}
hub_repo(name = HUB_NAME, files = files)
return mctx.extension_metadata(reproducible = True)

_license = license_tag("Accepts the Visual Studio Build Tools license for this build.")

msvc = module_extension(
implementation = _extension_impl,
doc = "Declares the MSVC toolchain hub repository.",
tag_classes = {"license": _license},
)
Loading
Loading