Bug fixes for ESMF on macOS with apple-clang+gfortran, with gfortran-10+ in general, and on Cray (#29193)
* Bugfix in var/spack/repos/builtin/packages/esmf/package.py * Bug fixes in var/spack/repos/builtin/packages/esmf/package.py to build ESMF on macOS with clang+gfortran and on cray * Add maintainer to var/spack/repos/builtin/packages/esmf/package.py * Fix style errors * Fix more style errors
This commit is contained in:
parent
ad2b493171
commit
3d29e0d641
@ -18,6 +18,8 @@ class Esmf(MakefilePackage):
|
||||
homepage = "https://www.earthsystemcog.org/projects/esmf/"
|
||||
url = 'https://github.com/esmf-org/esmf/archive/ESMF_8_0_1.tar.gz'
|
||||
|
||||
maintainers = ['climbfuji']
|
||||
|
||||
version('8.2.0', sha256='3693987aba2c8ae8af67a0e222bea4099a48afe09b8d3d334106f9d7fc311485')
|
||||
version('8.1.1', sha256='58c2e739356f21a1b32673aa17a713d3c4af9d45d572f4ba9168c357d586dc75')
|
||||
version('8.0.1', sha256='9172fb73f3fe95c8188d889ee72fdadb4f978b1d969e1d8e401e8d106def1d84')
|
||||
@ -126,10 +128,14 @@ def edit(self, spec, prefix):
|
||||
# C++ compilers are being used to build the ESMF library.
|
||||
if self.compiler.name == 'gcc':
|
||||
os.environ['ESMF_COMPILER'] = 'gfortran'
|
||||
gfortran_major_version = int(spack.compiler.get_compiler_version_output(
|
||||
self.compiler.fc, '-dumpversion').split('.')[0])
|
||||
elif self.compiler.name == 'intel':
|
||||
os.environ['ESMF_COMPILER'] = 'intel'
|
||||
elif self.compiler.name == 'clang':
|
||||
elif self.compiler.name in ['clang', 'apple-clang']:
|
||||
os.environ['ESMF_COMPILER'] = 'gfortranclang'
|
||||
gfortran_major_version = int(spack.compiler.get_compiler_version_output(
|
||||
self.compiler.fc, '-dumpversion').split('.')[0])
|
||||
elif self.compiler.name == 'nag':
|
||||
os.environ['ESMF_COMPILER'] = 'nag'
|
||||
elif self.compiler.name == 'pgi':
|
||||
@ -154,9 +160,18 @@ def edit(self, spec, prefix):
|
||||
# Build an optimized version of the library.
|
||||
os.environ['ESMF_BOPT'] = 'O'
|
||||
|
||||
if self.spec.satisfies('%gcc@10:'):
|
||||
if self.compiler.name in ['gcc', 'clang', 'apple-clang'] and \
|
||||
gfortran_major_version >= 10:
|
||||
os.environ['ESMF_F90COMPILEOPTS'] = '-fallow-argument-mismatch'
|
||||
|
||||
#######
|
||||
# OS #
|
||||
#######
|
||||
|
||||
# ESMF_OS must be set for Cray systems
|
||||
if 'platform=cray' in self.spec:
|
||||
os.environ['ESMF_OS'] = 'Unicos'
|
||||
|
||||
#######
|
||||
# MPI #
|
||||
#######
|
||||
@ -276,3 +291,9 @@ def edit(self, spec, prefix):
|
||||
|
||||
def check(self):
|
||||
make('check', parallel=False)
|
||||
|
||||
def setup_dependent_build_environment(self, env, dependent_spec):
|
||||
env.set('ESMFMKFILE', os.path.join(self.prefix.lib, 'esmf.mk'))
|
||||
|
||||
def setup_run_environment(self, env):
|
||||
env.set('ESMFMKFILE', os.path.join(self.prefix.lib, 'esmf.mk'))
|
||||
|
Loading…
Reference in New Issue
Block a user