mirror of
https://github.com/openai/codex.git
synced 2026-11-10 21:00:47 +00:00
## Why Windows MSVC builds relied on installed C++ toolchains, and V8 snapshot generation required native Windows execution. Cross-compiling V8 also needs a Windows snapshot generator to preserve Windows unwind metadata. ## What changed - Use the registered hermetic LLVM toolchain and declared Microsoft SDK for Windows MSVC builds, with static CRT linkage and the toolchain's declared `lld-link` for Rust. - Run Windows V8 snapshot generators natively or through `rules_wine` on Linux, preserving target CPU, OS, and sandbox settings. Keep separate archive and binding pairs for the workspace's ISO stdio ABI and the distributed MSVC stdio ABI. - Update build dependencies and bindgen, scope V8's Chromium libc++ settings to its own targets, and adapt native voice dependencies for clang-cl and Windows ARM64. - Build SQLite directly with Bazel and give `openssl-sys` an explicit build using Bazel's OpenSSL. - Remove build-worker source-directory dependencies from Bazel resource lookup, schema output discovery, and snapshot paths; embed assets in debug builds as well. GitOrigin-RevId: fd224d9d28d73a67baf90f6d73c6079d60f20351
27 lines
897 B
Python
27 lines
897 B
Python
"""Build Windows libc++ with the selected target toolchain and its declared SDK."""
|
|
|
|
load("@llvm//toolchain/runtimes:cc_runtime_library.bzl", "cc_runtime_stage0_library")
|
|
load("@rules_cc//cc:defs.bzl", "cc_library")
|
|
|
|
def libcxx_library(name, **kwargs):
|
|
cc_runtime_stage0_library(
|
|
name = name + "_stage0",
|
|
**kwargs
|
|
)
|
|
cc_library(
|
|
name = name + "_native_windows",
|
|
linkstatic = True,
|
|
target_compatible_with = select({
|
|
"@//third_party/v8:use_rusty_v8_custom_libcxx_native_windows": [],
|
|
"//conditions:default": ["@platforms//:incompatible"],
|
|
}),
|
|
**kwargs
|
|
)
|
|
native.alias(
|
|
name = name,
|
|
actual = select({
|
|
"@//third_party/v8:use_rusty_v8_custom_libcxx_native_windows": ":" + name + "_native_windows",
|
|
"//conditions:default": ":" + name + "_stage0",
|
|
}),
|
|
)
|