From c90706ebae4ca30e87ccc1f6d53a6fb7cbef55b2 Mon Sep 17 00:00:00 2001 From: Adam Perry Date: Wed, 10 Jun 2026 05:43:21 +0000 Subject: [PATCH] build(bazel): move release platform rules --- bazel/platforms/BUILD.bazel | 1 + bazel/platforms/release_binaries.bzl | 27 +++++++++++++++++++++++++++ codex-rs/cli/BUILD.bazel | 3 ++- defs.bzl | 25 ------------------------- 4 files changed, 30 insertions(+), 26 deletions(-) create mode 100644 bazel/platforms/BUILD.bazel create mode 100644 bazel/platforms/release_binaries.bzl diff --git a/bazel/platforms/BUILD.bazel b/bazel/platforms/BUILD.bazel new file mode 100644 index 000000000000..398d5d808377 --- /dev/null +++ b/bazel/platforms/BUILD.bazel @@ -0,0 +1 @@ +# Release platform rules live in this package. diff --git a/bazel/platforms/release_binaries.bzl b/bazel/platforms/release_binaries.bzl new file mode 100644 index 000000000000..2e2f4450364d --- /dev/null +++ b/bazel/platforms/release_binaries.bzl @@ -0,0 +1,27 @@ +"""Rules for building release binaries across supported target platforms.""" + +load("@rules_platform//platform_data:defs.bzl", "platform_data") + +PLATFORMS = [ + "linux_arm64_musl", + "linux_amd64_musl", + "macos_amd64", + "macos_arm64", + "windows_amd64", + "windows_arm64", +] + +def multiplatform_binaries(name, platforms = PLATFORMS): + for platform in platforms: + platform_data( + name = name + "_" + platform, + platform = "@llvm//platforms:" + platform, + target = name, + tags = ["manual"], + ) + + native.filegroup( + name = "release_binaries", + srcs = [name + "_" + platform for platform in platforms], + tags = ["manual"], + ) diff --git a/codex-rs/cli/BUILD.bazel b/codex-rs/cli/BUILD.bazel index faa8627477b3..97c868845b89 100644 --- a/codex-rs/cli/BUILD.bazel +++ b/codex-rs/cli/BUILD.bazel @@ -1,4 +1,5 @@ -load("//:defs.bzl", "MACOS_WEBRTC_RUSTC_LINK_FLAGS", "codex_rust_crate", "multiplatform_binaries") +load("//:defs.bzl", "MACOS_WEBRTC_RUSTC_LINK_FLAGS", "codex_rust_crate") +load("//bazel/platforms:release_binaries.bzl", "multiplatform_binaries") codex_rust_crate( name = "cli", diff --git a/defs.bzl b/defs.bzl index 4af81ecef187..b255160b095a 100644 --- a/defs.bzl +++ b/defs.bzl @@ -1,18 +1,8 @@ load("@crates//:data.bzl", "DEP_DATA") load("@crates//:defs.bzl", "all_crate_deps") -load("@rules_platform//platform_data:defs.bzl", "platform_data") load("@rules_rust//cargo/private:cargo_build_script_wrapper.bzl", "cargo_build_script") load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_proc_macro", "rust_test") -PLATFORMS = [ - "linux_arm64_musl", - "linux_amd64_musl", - "macos_amd64", - "macos_arm64", - "windows_amd64", - "windows_arm64", -] - # Match Cargo's Windows linker behavior so Bazel-built binaries and tests use # the same stack reserve on both Windows ABIs and resolve UCRT imports on MSVC. WINDOWS_RUSTC_LINK_FLAGS = select({ @@ -53,21 +43,6 @@ MACOS_WEBRTC_RUSTC_LINK_FLAGS = select({ "//conditions:default": [], }) -def multiplatform_binaries(name, platforms = PLATFORMS): - for platform in platforms: - platform_data( - name = name + "_" + platform, - platform = "@llvm//platforms:" + platform, - target = name, - tags = ["manual"], - ) - - native.filegroup( - name = "release_binaries", - srcs = [name + "_" + platform for platform in platforms], - tags = ["manual"], - ) - def _workspace_root_test_impl(ctx): is_windows = ctx.target_platform_has_constraint(ctx.attr._windows_constraint[platform_common.ConstraintValueInfo]) launcher = ctx.actions.declare_file(ctx.label.name + ".bat" if is_windows else ctx.label.name)