From 2d464f69f85f6bc212ee36ab45c096894de7be33 Mon Sep 17 00:00:00 2001 From: "Adam J. Stewart" Date: Mon, 18 May 2020 09:57:51 -0500 Subject: PyYAML: fix linking to libyaml (#16682) --- .../repos/builtin/packages/py-pyyaml/package.py | 32 ++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/var/spack/repos/builtin/packages/py-pyyaml/package.py b/var/spack/repos/builtin/packages/py-pyyaml/package.py index 2b00de2d9b..00b3d848b7 100644 --- a/var/spack/repos/builtin/packages/py-pyyaml/package.py +++ b/var/spack/repos/builtin/packages/py-pyyaml/package.py @@ -11,6 +11,9 @@ class PyPyyaml(PythonPackage): homepage = "https://pyyaml.org/wiki/PyYAML" url = "https://pypi.io/packages/source/P/PyYAML/PyYAML-5.3.1.tar.gz" + git = "https://github.com/yaml/pyyaml.git" + + maintainers = ['adamjstewart'] version('5.3.1', sha256='b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d') version('5.1.2', sha256='01adf0b6c6f61bd11af6e10ca52b7d4057dd0be0343eb9283c878cf3af56aee4') @@ -24,6 +27,17 @@ class PyPyyaml(PythonPackage): depends_on('python@2.7:2.8,3.5:', type=('build', 'run')) depends_on('libyaml', when='+libyaml') + phases = ['build_ext', 'install'] + + @property + def import_modules(self): + modules = ['yaml'] + + if '+libyaml' in self.spec: + modules.append('yaml.cyaml') + + return modules + def setup_py(self, *args, **kwargs): # Cast from tuple to list args = list(args) @@ -34,3 +48,21 @@ class PyPyyaml(PythonPackage): args.insert(0, '--without-libyaml') super(PyPyyaml, self).setup_py(*args, **kwargs) + + def build_ext_args(self, spec, prefix): + args = [] + + if '+libyaml' in spec: + args.extend([ + spec['libyaml'].libs.search_flags, + spec['libyaml'].headers.include_flags, + ]) + + return args + + # Tests need to be re-added since `phases` was overridden + run_after('build_ext')( + PythonPackage._run_default_build_time_test_callbacks) + run_after('install')( + PythonPackage._run_default_install_time_test_callbacks) + run_after('install')(PythonPackage.sanity_check_prefix) -- cgit v1.2.3-70-g09d2