Merge pull request #2196 from arteymix/patch-4

python3: Fix 'sysconfig_path' for platform-dependant paths
pull/2258/head
Jussi Pakkanen 8 years ago committed by GitHub
commit 3276882bbd
  1. 2
      mesonbuild/modules/python3.py
  2. 14
      test cases/python3/1 basic/meson.build

@ -68,7 +68,7 @@ class Python3Module(ExtensionModule):
raise mesonlib.MesonException('{} is not a valid path name {}.'.format(path_name, valid_names)) raise mesonlib.MesonException('{} is not a valid path name {}.'.format(path_name, valid_names))
# Get a relative path without a prefix, e.g. lib/python3.6/site-packages # Get a relative path without a prefix, e.g. lib/python3.6/site-packages
path = sysconfig.get_path(path_name, vars={'base': ''})[1:] path = sysconfig.get_path(path_name, vars={'base': '', 'platbase': '', 'installed_base': ''})[1:]
return ModuleReturnValue(path, []) return ModuleReturnValue(path, [])

@ -9,10 +9,22 @@ if py3_version.version_compare('< 3.2')
endif endif
py3_purelib = py3_mod.sysconfig_path('purelib') py3_purelib = py3_mod.sysconfig_path('purelib')
if not py3_purelib.endswith('site-packages') if not py3_purelib.to_lower().startswith('lib') or not py3_purelib.endswith('site-packages')
error('Python3 purelib path seems invalid?') error('Python3 purelib path seems invalid?')
endif endif
# could be 'lib64' or 'Lib' on some systems
py3_platlib = py3_mod.sysconfig_path('platlib')
if not py3_platlib.to_lower().startswith('lib') or not py3_platlib.endswith('site-packages')
error('Python3 platlib path seems invalid?')
endif
# could be 'Include' on Windows
py3_include = py3_mod.sysconfig_path('include')
if not py3_include.to_lower().startswith('include')
error('Python3 include path seems invalid?')
endif
main = files('prog.py') main = files('prog.py')
test('toplevel', py3, args : main) test('toplevel', py3, args : main)

Loading…
Cancel
Save