diff --git a/crates/uv-python/build.rs b/crates/uv-python/build.rs index 87573fa58..f732624ca 100644 --- a/crates/uv-python/build.rs +++ b/crates/uv-python/build.rs @@ -1,5 +1,5 @@ -use std::fs; -use std::path::Path; +use std::path::PathBuf; +use std::{env, fs}; fn process_json(data: &serde_json::Value) -> serde_json::Value { let mut out_data = serde_json::Map::new(); @@ -14,9 +14,25 @@ fn process_json(data: &serde_json::Value) -> serde_json::Value { } fn main() { - let version_metadata = "download-metadata.json"; - println!("cargo::rerun-if-changed={version_metadata}"); - let target = Path::new("src/download-metadata-minified.json"); + let version_metadata = PathBuf::from_iter([ + env::var("CARGO_MANIFEST_DIR").unwrap(), + "download-metadata.json".into(), + ]); + + let version_metadata_minified = PathBuf::from_iter([ + env::var("OUT_DIR").unwrap(), + "download-metadata-minified.json".into(), + ]); + + println!( + "cargo::rerun-if-changed={}", + version_metadata.to_str().unwrap() + ); + + println!( + "cargo::rerun-if-changed={}", + version_metadata_minified.to_str().unwrap() + ); let json_data: serde_json::Value = serde_json::from_str( #[allow(clippy::disallowed_methods)] @@ -28,7 +44,7 @@ fn main() { #[allow(clippy::disallowed_methods)] fs::write( - target, + version_metadata_minified, serde_json::to_string(&filtered_data).expect("Failed to serialize JSON"), ) .expect("Failed to write minified JSON"); diff --git a/crates/uv-python/src/downloads.rs b/crates/uv-python/src/downloads.rs index b637a3a68..fb5129030 100644 --- a/crates/uv-python/src/downloads.rs +++ b/crates/uv-python/src/downloads.rs @@ -792,7 +792,8 @@ impl FromStr for PythonDownloadRequest { } } -const BUILTIN_PYTHON_DOWNLOADS_JSON: &str = include_str!("download-metadata-minified.json"); +const BUILTIN_PYTHON_DOWNLOADS_JSON: &str = + include_str!(concat!(env!("OUT_DIR"), "/download-metadata-minified.json")); static PYTHON_DOWNLOADS: OnceCell> = OnceCell::new();