From ffbfe66912335bc816074c7a08aed06e26bfca7f Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Wed, 20 Oct 2021 17:54:57 +1000 Subject: [PATCH] write extra_files when building pyembed artifacts --- pyoxidizer/src/project_building.rs | 4 ++++ pyoxidizer/src/py_packaging/binary.rs | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/pyoxidizer/src/project_building.rs b/pyoxidizer/src/project_building.rs index 45612d897..6ecb7aef0 100644 --- a/pyoxidizer/src/project_building.rs +++ b/pyoxidizer/src/project_building.rs @@ -484,6 +484,10 @@ pub fn build_pyembed_artifacts( ))? { let p = p?; + // leave the extra files in the build dir; we do not need them to build the binary + if p.file_name() == "extra_files" { + continue; + } let dest_path = artifacts_path.join(p.file_name()); std::fs::copy(&p.path(), &dest_path).context(format!( "copying {} to {}", diff --git a/pyoxidizer/src/py_packaging/binary.rs b/pyoxidizer/src/py_packaging/binary.rs index 17e853122..90694fee1 100644 --- a/pyoxidizer/src/py_packaging/binary.rs +++ b/pyoxidizer/src/py_packaging/binary.rs @@ -746,6 +746,13 @@ impl<'a> EmbeddedPythonContext<'a> { Ok(()) } + /// Write extra files like dynamic extension modules to the build folder. + pub fn write_extra_files(&self, dest_dir: impl AsRef) -> Result<()> { + self.extra_files + .materialize_files(dest_dir.as_ref().join("extra_files"))?; + Ok(()) + } + /// Write out files needed to build a binary against our configuration. pub fn write_files(&self, dest_dir: &Path) -> Result<()> { self.write_packed_resources(&dest_dir) @@ -756,6 +763,8 @@ impl<'a> EmbeddedPythonContext<'a> { .context("write_interpreter_config_rs()")?; self.write_pyo3_config(&dest_dir) .context("write_pyo3_config()")?; + self.write_extra_files(&dest_dir) + .context("write_extra_files()")?; Ok(()) }