New interface for passing build information among specs (#1875)
- Added a new interface for Specs to pass build information - Calls forwarded from Spec to Package are now explicit - Added descriptor within Spec to manage forwarding - Added state in Spec to maintain query information - Modified a few packages (the one involved in spack install pexsi) to showcase changes - This uses an object wrapper to `spec` to implement the `libs` sub-calls. - wrapper is returned from `__getitem__` only if spec is concrete - allows packagers to access build information easily
This commit is contained in:

committed by
Todd Gamblin

parent
5ce926d2d1
commit
ed582cef68
@@ -36,7 +36,7 @@ DSUPERLU_INCLUDE = -I${DSUPERLU_DIR}/include
|
||||
INCLUDES = ${PEXSI_INCLUDE} ${DSUPERLU_INCLUDE}
|
||||
|
||||
# Libraries
|
||||
CPP_LIB = @STDCXX_LIB @MPICXX_LIB
|
||||
CPP_LIB = @MPICXX_LIB @STDCXX_LIB
|
||||
#GFORTRAN_LIB = /usr/lib/gcc/x86_64-linux-gnu/4.8/libgfortran.a
|
||||
LAPACK_LIB = @LAPACK_LIBS
|
||||
BLAS_LIB = @BLAS_LIBS
|
||||
|
@@ -59,7 +59,7 @@ def install(self, spec, prefix):
|
||||
'@MPICC': self.spec['mpi'].mpicc,
|
||||
'@MPICXX': self.spec['mpi'].mpicxx,
|
||||
'@MPIFC': self.spec['mpi'].mpifc,
|
||||
'@MPICXX_LIB': ' '.join(self.spec['mpi'].mpicxx_shared_libs),
|
||||
'@MPICXX_LIB': self.spec['mpi:cxx'].libs.joined(),
|
||||
'@RANLIB': 'ranlib',
|
||||
'@PEXSI_STAGE': self.stage.source_path,
|
||||
'@SUPERLU_PREFIX': self.spec['superlu-dist'].prefix,
|
||||
@@ -67,8 +67,9 @@ def install(self, spec, prefix):
|
||||
'@PARMETIS_PREFIX': self.spec['parmetis'].prefix,
|
||||
'@LAPACK_PREFIX': self.spec['lapack'].prefix,
|
||||
'@BLAS_PREFIX': self.spec['blas'].prefix,
|
||||
'@LAPACK_LIBS': self.spec['lapack'].lapack_libs.joined(),
|
||||
'@BLAS_LIBS': self.spec['lapack'].blas_libs.joined(),
|
||||
'@LAPACK_LIBS': self.spec['lapack'].libs.joined(),
|
||||
'@BLAS_LIBS': self.spec['blas'].libs.joined(),
|
||||
# FIXME : what to do with compiler provided libraries ?
|
||||
'@STDCXX_LIB': ' '.join(self.compiler.stdcxx_libs)
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user