summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVeselin Dobrev <v-dobrev@users.noreply.github.com>2018-03-06 01:09:20 -0800
committerMassimiliano Culpo <massimiliano.culpo@gmail.com>2018-03-06 10:09:20 +0100
commit7482cf1d9fc19b1fb0690aad490129e276a5731c (patch)
tree61d8a3410385cc1dbc7dca0b4419de45e7839930
parent9c828f30684330f1d9ba710c3852a4a71b70f641 (diff)
downloadspack-7482cf1d9fc19b1fb0690aad490129e276a5731c.tar.gz
spack-7482cf1d9fc19b1fb0690aad490129e276a5731c.tar.bz2
spack-7482cf1d9fc19b1fb0690aad490129e276a5731c.tar.xz
spack-7482cf1d9fc19b1fb0690aad490129e276a5731c.zip
suite-sparse: add a package-specific 'libs' property (#7269)
-rw-r--r--var/spack/repos/builtin/packages/suite-sparse/package.py21
1 files changed, 20 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/suite-sparse/package.py b/var/spack/repos/builtin/packages/suite-sparse/package.py
index fd93cd6ca7..2f8660f496 100644
--- a/var/spack/repos/builtin/packages/suite-sparse/package.py
+++ b/var/spack/repos/builtin/packages/suite-sparse/package.py
@@ -95,7 +95,7 @@ class SuiteSparse(Package):
# with the TCOV path of SparseSuite 4.5.1's Suitesparse_config.mk,
# even though this fix is ugly
'BLAS=%s' % (spec['blas'].libs.ld_flags + (
- '-lstdc++' if '@4.5.1' in spec else '')),
+ ' -lstdc++' if '@4.5.1' in spec else '')),
'LAPACK=%s' % spec['lapack'].libs.ld_flags,
]
@@ -125,3 +125,22 @@ class SuiteSparse(Package):
]
make('install', *make_args)
+
+ @property
+ def libs(self):
+ """Export the libraries of SuiteSparse.
+ Sample usage: spec['suite-sparse'].libs.ld_flags
+ spec['suite-sparse:klu,btf'].libs.ld_flags
+ """
+ # Component libraries, ordered by dependency. Any missing components?
+ all_comps = ['klu', 'btf', 'umfpack', 'cholmod', 'colamd', 'amd',
+ 'camd', 'ccolamd', 'cxsparse', 'ldl', 'rbio', 'spqr',
+ 'suitesparseconfig']
+ query_parameters = self.spec.last_query.extra_parameters
+ comps = all_comps if not query_parameters else query_parameters
+ libs = find_libraries(['lib' + c for c in comps], root=self.prefix.lib,
+ shared=True, recursive=False)
+ if not libs:
+ return None
+ libs += find_system_libraries('librt')
+ return libs