Skip to content

Commit 1cfece8

Browse files
committed
feat: maybe fix Windows build
1 parent e4bfb63 commit 1cfece8

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

‎.github/workflows/cd.yaml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ jobs:
7676
manylinux: ${{ matrix.build.manylinux || 'auto' }}
7777
args: --release --out dist -i ${{ steps.python.outputs.interpreters }}
7878
sccache: "true"
79+
env:
80+
CL: ${{ runner.os == 'Windows' && '/experimental:c11atomics' || '' }}
7981

8082
- name: Upload wheel artifacts
8183
uses: actions/upload-artifact@v4

‎build.rs‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
11
fn main() {
22
pyo3_build_config::use_pyo3_cfgs();
3+
emit_python_link_alias_for_custom_ffi_blocks();
4+
pyo3_build_config::add_extension_module_link_args();
5+
}
6+
7+
fn emit_python_link_alias_for_custom_ffi_blocks() {
8+
let is_windows_target = std::env::var("CARGO_CFG_TARGET_OS")
9+
.is_ok_and(|target_operating_system| target_operating_system == "windows");
10+
11+
if !is_windows_target {
12+
return;
13+
}
14+
15+
let interpreter_config = pyo3_build_config::get();
16+
let Some(library_name) = interpreter_config.lib_name.as_ref() else {
17+
return;
18+
};
19+
20+
let link_modifier = if interpreter_config.shared { "" } else { "static=" };
21+
println!("cargo:rustc-link-lib={link_modifier}pythonXY:{library_name}");
22+
23+
if let Some(library_directory) = interpreter_config.lib_dir.as_ref() {
24+
println!("cargo:rustc-link-search=native={library_directory}");
25+
}
326
}

0 commit comments

Comments
 (0)