From 2f9cd402d3293f6efe0f3ac06f17c6c14edbed86 Mon Sep 17 00:00:00 2001 From: James Hilliard Date: Sun, 25 Jun 2023 17:39:19 -0600 Subject: [PATCH] Fix include directory when cross compiling (#9129) Upstream-Status: Backport [https://github.com/pyca/cryptography/pull/9129] Signed-off-by: Alexander Kanavin --- src/rust/cryptography-cffi/build.rs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/rust/cryptography-cffi/build.rs b/src/rust/cryptography-cffi/build.rs index 07590ad2e..384af1ddb 100644 --- a/src/rust/cryptography-cffi/build.rs +++ b/src/rust/cryptography-cffi/build.rs @@ -47,9 +47,14 @@ fn main() { ) .unwrap(); println!("cargo:rustc-cfg=python_implementation=\"{}\"", python_impl); - let python_include = run_python_script( + let python_includes = run_python_script( &python, - "import sysconfig; print(sysconfig.get_path('include'), end='')", + "import os; \ + import setuptools.dist; \ + import setuptools.command.build_ext; \ + b = setuptools.command.build_ext.build_ext(setuptools.dist.Distribution()); \ + b.finalize_options(); \ + print(os.pathsep.join(b.include_dirs), end='')", ) .unwrap(); let openssl_include = @@ -59,12 +64,15 @@ fn main() { let mut build = cc::Build::new(); build .file(openssl_c) - .include(python_include) .include(openssl_include) .flag_if_supported("-Wconversion") .flag_if_supported("-Wno-error=sign-conversion") .flag_if_supported("-Wno-unused-parameter"); + for python_include in env::split_paths(&python_includes) { + build.include(python_include); + } + // Enable abi3 mode if we're not using PyPy. if python_impl != "PyPy" { // cp37 (Python 3.7 to help our grep when we some day drop 3.7 support) -- 2.30.2