Remove MPI support, fix INCLUDE filters

This commit is contained in:
Adam J. Stewart 2016-06-15 13:55:51 -05:00
parent 7b97ea248a
commit 44e188f111

View File

@ -36,19 +36,15 @@ class Psi4(Package):
version('0.5', '53041b8a9be3958384171d0d22f9fdd0') version('0.5', '53041b8a9be3958384171d0d22f9fdd0')
variant('mpi', default=True, description='Enable MPI parallelization')
# Required dependencies # Required dependencies
depends_on('blas') depends_on('blas')
depends_on('lapack') depends_on('lapack')
depends_on('boost+chrono+filesystem~mpi+python+regex+serialization+system+timer+thread', when='~mpi') depends_on('boost+chrono+filesystem+python+regex+serialization+system+timer+thread')
depends_on('boost+chrono+filesystem+mpi+python+regex+serialization+system+timer+thread', when='+mpi')
depends_on('python') depends_on('python')
depends_on('cmake') depends_on('cmake')
depends_on('py-numpy') depends_on('py-numpy')
# Optional dependencies # Optional dependencies
depends_on('mpi', when='+mpi')
# TODO: add packages for these # TODO: add packages for these
# depends_on('perl') # depends_on('perl')
# depends_on('erd') # depends_on('erd')
@ -63,7 +59,6 @@ def install(self, spec, prefix):
'-DLAPACK_LIBRARIES={0}'.format(spec['lapack'].lapack_shared_lib), '-DLAPACK_LIBRARIES={0}'.format(spec['lapack'].lapack_shared_lib),
'-DBOOST_INCLUDEDIR={0}'.format(spec['boost'].prefix.include), '-DBOOST_INCLUDEDIR={0}'.format(spec['boost'].prefix.include),
'-DBOOST_LIBRARYDIR={0}'.format(spec['boost'].prefix.lib), '-DBOOST_LIBRARYDIR={0}'.format(spec['boost'].prefix.lib),
'-DENABLE_MPI={0}'.format('ON' if '+mpi' in spec else 'OFF'),
'-DENABLE_CHEMPS2=OFF' '-DENABLE_CHEMPS2=OFF'
] ]
@ -73,12 +68,11 @@ def install(self, spec, prefix):
cmake('..', *cmake_args) cmake('..', *cmake_args)
make() make()
ctest()
make('install') make('install')
self.filter_compilers(spec) self.filter_compilers(spec, prefix)
def filter_compilers(self, spec): def filter_compilers(self, spec, prefix):
"""Run after install to tell the configuration files to """Run after install to tell the configuration files to
use the compilers that Spack built the package with. use the compilers that Spack built the package with.
@ -94,27 +88,28 @@ def filter_compilers(self, spec):
for filename in cc_files: for filename in cc_files:
filter_file(os.environ['CC'], self.compiler.cc, filter_file(os.environ['CC'], self.compiler.cc,
os.path.join(self.prefix, filename), **kwargs) os.path.join(prefix, filename), **kwargs)
for filename in cxx_files: for filename in cxx_files:
filter_file(os.environ['CXX'], self.compiler.cxx, filter_file(os.environ['CXX'], self.compiler.cxx,
os.path.join(self.prefix, filename), **kwargs) os.path.join(prefix, filename), **kwargs)
# The binary still keeps track of the compiler used to install Psi4 # The binary still keeps track of the compiler used to install Psi4
# and uses it when creating a plugin template # and uses it when creating a plugin template
filter_file('@PLUGIN_CXX@', self.compiler.cxx, filter_file('@PLUGIN_CXX@', self.compiler.cxx,
os.path.join(self.prefix, template), **kwargs) os.path.join(prefix, template), **kwargs)
# The binary links to the build include directory instead of the # The binary links to the build include directory instead of the
# installation include directory: # installation include directory:
# https://github.com/psi4/psi4/issues/410 # https://github.com/psi4/psi4/issues/410
filter_file('@PLUGIN_INCLUDES@', '-I{0}'.format( filter_file('@PLUGIN_INCLUDES@', '-I{0}'.format(
' -I'.join( ' -I'.join([
spec['psi4'].prefix.include, os.path.join(spec['psi4'].prefix.include, 'psi4'),
spec['boost'].prefix.include, os.path.join(spec['boost'].prefix.include, 'boost'),
spec['lapack'].prefix.include, os.path.join(spec['python'].prefix.include, 'python{0}'.format(
spec['blas'].prefix.include, spec['python'].version.up_to(2))),
spec['python'].prefix.include, spec['lapack'].prefix.include,
'/usr/include' spec['blas'].prefix.include,
) '/usr/include'
), os.path.join(self.prefix, template), **kwargs) ])
), os.path.join(prefix, template), **kwargs)