module(name = "codex") bazel_dep(name = "bazel_skylib", version = "1.8.2") bazel_dep(name = "platforms", version = "1.0.0") bazel_dep(name = "llvm", version = "0.6.8") register_toolchains("@llvm//toolchain:all") osx = use_extension("@llvm//extensions:osx.bzl", "osx") osx.from_archive( sha256 = "6a4922f89487a96d7054ec6ca5065bfddd9f1d017c74d82f1d79cecf7feb8228", strip_prefix = "Payload/Library/Developer/CommandLineTools/SDKs/MacOSX26.2.sdk", type = "pkg", urls = [ "https://swcdn.apple.com/content/downloads/26/44/047-81934-A_28TPKM5SD1/ps6pk6dk4x02vgfa5qsctq6tgf23t5f0w2/CLTools_macOSNMOS_SDK.pkg", ], ) osx.frameworks(names = [ "ApplicationServices", "AppKit", "ColorSync", "CoreFoundation", "CoreGraphics", "CoreServices", "CoreText", "AudioToolbox", "CFNetwork", "FontServices", "AudioUnit", "CoreAudio", "CoreAudioTypes", "Foundation", "ImageIO", "IOKit", "Kernel", "OSLog", "Security", "SystemConfiguration", ]) use_repo(osx, "macos_sdk") # Needed to disable xcode... bazel_dep(name = "apple_support", version = "2.1.0") bazel_dep(name = "rules_cc", version = "0.2.16") bazel_dep(name = "rules_platform", version = "0.1.0") bazel_dep(name = "rules_rs", version = "0.0.43") rules_rust = use_extension("@rules_rs//rs/experimental:rules_rust.bzl", "rules_rust") use_repo(rules_rust, "rules_rust") toolchains = use_extension("@rules_rs//rs/experimental/toolchains:module_extension.bzl", "toolchains") toolchains.toolchain( edition = "2024", version = "1.93.0", ) use_repo(toolchains, "default_rust_toolchains") register_toolchains("@default_rust_toolchains//:all") crate = use_extension("@rules_rs//rs:extensions.bzl", "crate") crate.from_cargo( cargo_lock = "//codex-rs:Cargo.lock", cargo_toml = "//codex-rs:Cargo.toml", platform_triples = [ "aarch64-unknown-linux-gnu", "aarch64-unknown-linux-musl", "aarch64-apple-darwin", "aarch64-pc-windows-gnullvm", "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl", "x86_64-apple-darwin", "x86_64-pc-windows-gnullvm", ], use_experimental_platforms = True, ) bazel_dep(name = "zstd", version = "1.5.7") crate.annotation( crate = "zstd-sys", gen_build_script = "off", deps = ["@zstd"], ) crate.annotation( build_script_env = { "AWS_LC_SYS_NO_JITTER_ENTROPY": "1", }, crate = "aws-lc-sys", patch_args = ["-p1"], patches = [ "//patches:aws-lc-sys_memcmp_check.patch", ], ) inject_repo(crate, "zstd") bazel_dep(name = "bzip2", version = "1.0.8.bcr.3") crate.annotation( crate = "bzip2-sys", gen_build_script = "off", deps = ["@bzip2//:bz2"], ) inject_repo(crate, "bzip2") bazel_dep(name = "zlib", version = "1.3.1.bcr.8") crate.annotation( crate = "libz-sys", gen_build_script = "off", deps = ["@zlib"], ) inject_repo(crate, "zlib") # TODO(zbarsky): Enable annotation after fixing windows arm64 builds. crate.annotation( crate = "lzma-sys", gen_build_script = "on", ) bazel_dep(name = "openssl", version = "3.5.4.bcr.0") crate.annotation( build_script_data = [ "@openssl//:gen_dir", ], build_script_env = { "OPENSSL_DIR": "$(execpath @openssl//:gen_dir)", "OPENSSL_NO_VENDOR": "1", "OPENSSL_STATIC": "1", }, crate = "openssl-sys", data = ["@openssl//:gen_dir"], gen_build_script = "on", ) inject_repo(crate, "openssl") crate.annotation( crate = "runfiles", workspace_cargo_toml = "rust/runfiles/Cargo.toml", ) http_archive = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") http_file = use_repo_rule("@bazel_tools//tools/build_defs/repo:http.bzl", "http_file") new_local_repository = use_repo_rule("@bazel_tools//tools/build_defs/repo:local.bzl", "new_local_repository") new_local_repository( name = "v8_targets", build_file = "//third_party/v8:BUILD.bazel", path = "third_party/v8", ) crate.annotation( build_script_data = [ "@v8_targets//:rusty_v8_archive_for_target", "@v8_targets//:rusty_v8_binding_for_target", ], build_script_env = { "RUSTY_V8_ARCHIVE": "$(execpath @v8_targets//:rusty_v8_archive_for_target)", "RUSTY_V8_SRC_BINDING_PATH": "$(execpath @v8_targets//:rusty_v8_binding_for_target)", }, crate = "v8", gen_build_script = "on", patch_args = ["-p1"], patches = [ "//patches:rusty_v8_prebuilt_out_dir.patch", ], ) inject_repo(crate, "v8_targets") llvm = use_extension("@llvm//extensions:llvm.bzl", "llvm") use_repo(llvm, "llvm-project") crate.annotation( # Provide the hermetic SDK path so the build script doesn't try to invoke an unhermetic `xcrun --show-sdk-path`. build_script_data = [ "@macos_sdk//sysroot", ], build_script_env = { "BINDGEN_EXTRA_CLANG_ARGS": "-Xclang -internal-isystem -Xclang $(location @llvm//:builtin_resource_dir)/include", "COREAUDIO_SDK_PATH": "$(location @macos_sdk//sysroot)", "LIBCLANG_PATH": "$(location @llvm-project//clang:libclang_interface_output)", }, build_script_tools = [ "@llvm-project//clang:libclang_interface_output", "@llvm//:builtin_resource_dir", ], crate = "coreaudio-sys", gen_build_script = "on", ) inject_repo(crate, "llvm", "llvm-project", "macos_sdk") # Fix readme inclusions crate.annotation( crate = "windows-link", patch_args = ["-p1"], patches = [ "//patches:windows-link.patch", ], ) bazel_dep(name = "alsa_lib", version = "1.2.9.bcr.4") crate.annotation( crate = "alsa-sys", gen_build_script = "off", deps = ["@alsa_lib"], ) inject_repo(crate, "alsa_lib") bazel_dep(name = "v8", version = "14.6.202.9") archive_override( module_name = "v8", integrity = "sha256-JphDwLAzsd9KvgRZ7eQvNtPU6qGd3XjFt/a/1QITAJU=", patch_strip = 3, patches = [ "//patches:v8_module_deps.patch", "//patches:v8_bazel_rules.patch", "//patches:v8_source_portability.patch", ], strip_prefix = "v8-14.6.202.9", urls = ["https://github.com/v8/v8/archive/refs/tags/14.6.202.9.tar.gz"], ) http_archive( name = "v8_crate_146_4_0", build_file = "//third_party/v8:v8_crate.BUILD.bazel", sha256 = "d97bcac5cdc5a195a4813f1855a6bc658f240452aac36caa12fd6c6f16026ab1", strip_prefix = "v8-146.4.0", type = "tar.gz", urls = ["https://static.crates.io/crates/v8/v8-146.4.0.crate"], ) http_file( name = "rusty_v8_146_4_0_aarch64_apple_darwin_archive", downloaded_file_path = "librusty_v8_release_aarch64-apple-darwin.a.gz", urls = [ "https://github.com/denoland/rusty_v8/releases/download/v146.4.0/librusty_v8_release_aarch64-apple-darwin.a.gz", ], ) http_file( name = "rusty_v8_146_4_0_aarch64_unknown_linux_gnu_archive", downloaded_file_path = "librusty_v8_release_aarch64-unknown-linux-gnu.a.gz", urls = [ "https://github.com/denoland/rusty_v8/releases/download/v146.4.0/librusty_v8_release_aarch64-unknown-linux-gnu.a.gz", ], ) http_file( name = "rusty_v8_146_4_0_aarch64_pc_windows_msvc_archive", downloaded_file_path = "rusty_v8_release_aarch64-pc-windows-msvc.lib.gz", urls = [ "https://github.com/denoland/rusty_v8/releases/download/v146.4.0/rusty_v8_release_aarch64-pc-windows-msvc.lib.gz", ], ) http_file( name = "rusty_v8_146_4_0_x86_64_apple_darwin_archive", downloaded_file_path = "librusty_v8_release_x86_64-apple-darwin.a.gz", urls = [ "https://github.com/denoland/rusty_v8/releases/download/v146.4.0/librusty_v8_release_x86_64-apple-darwin.a.gz", ], ) http_file( name = "rusty_v8_146_4_0_x86_64_unknown_linux_gnu_archive", downloaded_file_path = "librusty_v8_release_x86_64-unknown-linux-gnu.a.gz", urls = [ "https://github.com/denoland/rusty_v8/releases/download/v146.4.0/librusty_v8_release_x86_64-unknown-linux-gnu.a.gz", ], ) http_file( name = "rusty_v8_146_4_0_x86_64_pc_windows_msvc_archive", downloaded_file_path = "rusty_v8_release_x86_64-pc-windows-msvc.lib.gz", urls = [ "https://github.com/denoland/rusty_v8/releases/download/v146.4.0/rusty_v8_release_x86_64-pc-windows-msvc.lib.gz", ], ) http_file( name = "rusty_v8_146_4_0_aarch64_unknown_linux_musl_archive", downloaded_file_path = "librusty_v8_release_aarch64-unknown-linux-musl.a.gz", urls = [ "https://github.com/openai/codex/releases/download/rusty-v8-v146.4.0/librusty_v8_release_aarch64-unknown-linux-musl.a.gz", ], ) http_file( name = "rusty_v8_146_4_0_aarch64_unknown_linux_musl_binding", downloaded_file_path = "src_binding_release_aarch64-unknown-linux-musl.rs", urls = [ "https://github.com/openai/codex/releases/download/rusty-v8-v146.4.0/src_binding_release_aarch64-unknown-linux-musl.rs", ], ) http_file( name = "rusty_v8_146_4_0_x86_64_unknown_linux_musl_archive", downloaded_file_path = "librusty_v8_release_x86_64-unknown-linux-musl.a.gz", urls = [ "https://github.com/openai/codex/releases/download/rusty-v8-v146.4.0/librusty_v8_release_x86_64-unknown-linux-musl.a.gz", ], ) http_file( name = "rusty_v8_146_4_0_x86_64_unknown_linux_musl_binding", downloaded_file_path = "src_binding_release_x86_64-unknown-linux-musl.rs", urls = [ "https://github.com/openai/codex/releases/download/rusty-v8-v146.4.0/src_binding_release_x86_64-unknown-linux-musl.rs", ], ) use_repo(crate, "crates") bazel_dep(name = "libcap", version = "2.27.bcr.1") rbe_platform_repository = use_repo_rule("//:rbe.bzl", "rbe_platform_repository") rbe_platform_repository( name = "rbe_platform", )