diff options
author | Weston Ortiz <weston@wortiz.com> | 2021-09-14 00:53:53 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-14 08:53:53 +0200 |
commit | d7c5aa46fe1e90a554a3f14430112eb68a187267 (patch) | |
tree | 70da390ca9723a2b04e7aae2f98f263efcb3a4df /var | |
parent | f6eb16982ab2e7b9c2931281ca48acb9ebc07c1e (diff) | |
download | spack-d7c5aa46fe1e90a554a3f14430112eb68a187267.tar.gz spack-d7c5aa46fe1e90a554a3f14430112eb68a187267.tar.bz2 spack-d7c5aa46fe1e90a554a3f14430112eb68a187267.tar.xz spack-d7c5aa46fe1e90a554a3f14430112eb68a187267.zip |
trilinos: variant for libx11 (#25823)
Diffstat (limited to 'var')
-rw-r--r-- | var/spack/repos/builtin/packages/trilinos/package.py | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/var/spack/repos/builtin/packages/trilinos/package.py b/var/spack/repos/builtin/packages/trilinos/package.py index 8f57fc2d9e..038cd8bc63 100644 --- a/var/spack/repos/builtin/packages/trilinos/package.py +++ b/var/spack/repos/builtin/packages/trilinos/package.py @@ -3,9 +3,11 @@ # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import os import sys from spack import * +from spack.build_environment import dso_suffix from spack.operating_systems.mac_os import macos_version from spack.pkg.builtin.kokkos import Kokkos @@ -83,6 +85,7 @@ class Trilinos(CMakePackage, CudaPackage): variant('superlu-dist', default=False, description='Compile with SuperluDist solvers') variant('superlu', default=False, description='Compile with SuperLU solvers') variant('strumpack', default=False, description='Compile with STRUMPACK solvers') + variant('x11', default=False, description='Compile with X11 when +exodus') variant('zlib', default=False, description='Compile with zlib') # Package options (alphabet order) @@ -323,7 +326,7 @@ class Trilinos(CMakePackage, CudaPackage): # Variant requirements from packages depends_on('metis', when='+zoltan') - depends_on('libx11', when='+exodus') + depends_on('libx11', when='+x11') depends_on('matio', when='+exodus') depends_on('netcdf-c', when="+exodus") depends_on('netcdf-c+mpi+parallel-netcdf', when="+exodus+mpi@12.12.1:") @@ -685,14 +688,24 @@ class Trilinos(CMakePackage, CudaPackage): # ################# System-specific ###################### # Fortran lib (assumes clang is built with gfortran!) - if ('+fortran +mpi' in spec + if ('+fortran' in spec and spec.compiler.name in ['gcc', 'clang', 'apple-clang']): - mpifc = Executable(spec['mpi'].mpifc) - libgfortran = mpifc('--print-file-name', 'libgfortran.a', output=str) - options.append(define( - 'Trilinos_EXTRA_LINK_FLAGS', - '-L%s/ -lgfortran' % (libgfortran), - )) + fc = Executable(spec['mpi'].mpifc) if ( + '+mpi' in spec) else Executable(spack_fc) + libgfortran = fc('--print-file-name', + 'libgfortran.' + dso_suffix, + output=str).strip() + # if libgfortran is equal to "libgfortran.<dso_suffix>" then + # print-file-name failed, use static library instead + if libgfortran == 'libgfortran.' + dso_suffix: + libgfortran = fc('--print-file-name', + 'libgfortran.a', + output=str).strip() + # -L<libdir> -lgfortran required for OSX + # https://github.com/spack/spack/pull/25823#issuecomment-917231118 + options.append( + define('Trilinos_EXTRA_LINK_FLAGS', + '-L%s/ -lgfortran' % os.path.dirname(libgfortran))) if sys.platform == 'darwin' and macos_version() >= Version('10.12'): # use @rpath on Sierra due to limit of dynamic loader |