Download patches/rusty_v8_prebuilt_out_dir.patch from SaylorTwift/codex: direct link, hf CLI and curl.
- Browser
- Download file 2.34 kB
-
https://huggingface.co/SaylorTwift/codex/resolve/main/patches/rusty_v8_prebuilt_out_dir.patch
- Command line
-
hf download hf://SaylorTwift/codex/patches/rusty_v8_prebuilt_out_dir.patch
-
curl -L -o rusty_v8_prebuilt_out_dir.patch https://huggingface.co/SaylorTwift/codex/resolve/main/patches/rusty_v8_prebuilt_out_dir.patch
2.34 kB
| # What: make `rusty_v8` accept Bazel-provided archives and bindings for the | |
| # windows-gnullvm experiment. | |
| # Scope: `rusty_v8` build.rs only; no V8 source or Bazel rule changes. | |
| --- a/build.rs | |
| +++ b/build.rs | |
| } | |
| fn static_lib_name(suffix: &str) -> String { | |
| - let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap(); | |
| - if target_os == "windows" { | |
| + let target = env::var("TARGET").unwrap(); | |
| + let target_os = env::var("CARGO_CFG_TARGET_OS").unwrap(); | |
| + if target.contains("windows-gnullvm") { | |
| + // rustc looks for GNU-style archive names when bundling `-lstatic` on the | |
| + // gnullvm targets, even though the prebuilt release is a COFF `.lib`. | |
| + format!("librusty_v8{suffix}.a") | |
| + } else if target_os == "windows" { | |
| format!("rusty_v8{suffix}.lib") | |
| } else { | |
| format!("librusty_v8{suffix}.a") | |
| } | |
| } | |
| path | |
| } | |
| +fn out_dir_abs() -> PathBuf { | |
| + let cwd = env::current_dir().unwrap(); | |
| + | |
| + // target/debug/build/rusty_v8-d9e5a424d4f96994/out/ | |
| + let out_dir = env::var_os("OUT_DIR").expect( | |
| + "The 'OUT_DIR' environment is not set (it should be something like \ | |
| + 'target/debug/rusty_v8-{hash}').", | |
| + ); | |
| + | |
| + cwd.join(out_dir) | |
| +} | |
| + | |
| fn static_lib_dir() -> PathBuf { | |
| + if env::var_os("RUSTY_V8_ARCHIVE").is_some() { | |
| + return out_dir_abs().join("gn_out").join("obj"); | |
| + } | |
| + | |
| build_dir().join("gn_out").join("obj") | |
| } | |
| } | |
| fn print_link_flags() { | |
| + let target = env::var("TARGET").unwrap(); | |
| println!("cargo:rustc-link-lib=static=rusty_v8"); | |
| let should_dyn_link_libcxx = env::var("CARGO_FEATURE_USE_CUSTOM_LIBCXX") | |
| .is_err() | |
| + || (target.contains("apple") && env::var("RUSTY_V8_ARCHIVE").is_ok()) | |
| || env::var("GN_ARGS").is_ok_and(|gn_args| { | |
| gn_args | |
| .split_whitespace() | |
| .any(|ba| ba == "use_custom_libcxx=false") | |
| }); | |
| if should_dyn_link_libcxx { | |
| // Based on https://github.com/alexcrichton/cc-rs/blob/fba7feded71ee4f63cfe885673ead6d7b4f2f454/src/lib.rs#L2462 | |
| if let Ok(stdlib) = env::var("CXXSTDLIB") { | |
| if !stdlib.is_empty() { | |
| println!("cargo:rustc-link-lib=dylib={stdlib}"); | |
| } | |
| } else { | |
| - let target = env::var("TARGET").unwrap(); | |
| if target.contains("msvc") { | |
| // nothing to link to | |
| } else if target.contains("apple") | |