@@ -37,12 +37,19 @@ |
|
|
37 |
37 |
|
38 |
38 |
# Copy from sysconfig._INSTALL_SCHEMES |
39 |
39 |
for key in SCHEME_KEYS: |
40 |
|
-sys_key = key |
41 |
|
-if key == "headers": |
42 |
|
-sys_key = "include" |
43 |
|
-INSTALL_SCHEMES["unix_prefix"][key] = sysconfig._INSTALL_SCHEMES["posix_prefix"][sys_key] |
44 |
|
-INSTALL_SCHEMES["unix_home"][key] = sysconfig._INSTALL_SCHEMES["posix_home"][sys_key] |
45 |
|
-INSTALL_SCHEMES["nt"][key] = sysconfig._INSTALL_SCHEMES["nt"][sys_key] |
|
40 |
+for distutils_scheme_name, sys_scheme_name in ( |
|
41 |
+ ("unix_prefix", "posix_prefix"), ("unix_home", "posix_home"), |
|
42 |
+ ("nt", "nt")): |
|
43 |
+sys_key = key |
|
44 |
+sys_scheme = sysconfig._INSTALL_SCHEMES[sys_scheme_name] |
|
45 |
+if key == "headers" and key not in sys_scheme: |
|
46 |
+# On POSIX-y platofrms, Python will: |
|
47 |
+# - Build from .h files in 'headers' (only there when |
|
48 |
+# building CPython) |
|
49 |
+# - Install .h files to 'include' |
|
50 |
+# When 'headers' is missing, fall back to 'include' |
|
51 |
+sys_key = 'include' |
|
52 |
+INSTALL_SCHEMES[distutils_scheme_name][key] = sys_scheme[sys_key] |
46 |
53 |
|
47 |
54 |
# Transformation to different template format |
48 |
55 |
for main_key in INSTALL_SCHEMES: |
@@ -316,6 +323,9 @@ def finalize_options(self): |
|
|
316 |
323 |
self.config_vars['userbase'] = self.install_userbase |
317 |
324 |
self.config_vars['usersite'] = self.install_usersite |
318 |
325 |
|
|
326 |
+if sysconfig.is_python_build(True): |
|
327 |
+self.config_vars['srcdir'] = sysconfig.get_config_var('srcdir') |
|
328 |
+ |
319 |
329 |
self.expand_basedirs() |
320 |
330 |
|
321 |
331 |
self.dump_dirs("post-expand_basedirs()") |