trilinos: add variant to disable chaco from seacas (#11482)

* trilinos: add variant to disable chaco from seacas

keep it OFF by default due to the presence of the global symbol "divide"
that can lead to symbol clash with other libraries, for example see
https://github.com/dealii/dealii/issues/8170#issuecomment-492700787

* dealii: add conflict statement for adol-c and Trilinos SEACAS Chaco
This commit is contained in:
Denis Davydov 2019-05-19 06:01:44 +02:00 committed by Adam J. Stewart
parent e1bb6821aa
commit a66cc59bb0
2 changed files with 23 additions and 2 deletions

View File

@ -200,6 +200,10 @@ class Dealii(CMakePackage, CudaPackage):
msg='It is not possible to enable slepc interfaces ' msg='It is not possible to enable slepc interfaces '
'without petsc.') 'without petsc.')
conflicts('+adol-c', when='^trilinos+chaco',
msg='symbol clash between the ADOL-C library and '
'Trilinos SEACAS Chaco.')
# interfaces added in 8.5.0: # interfaces added in 8.5.0:
for p in ['gsl', 'python']: for p in ['gsl', 'python']:
conflicts('+{0}'.format(p), when='@:8.4.2', conflicts('+{0}'.format(p), when='@:8.4.2',

View File

@ -81,8 +81,6 @@ class Trilinos(CMakePackage):
description='Compile with Boost') description='Compile with Boost')
variant('cgns', default=False, variant('cgns', default=False,
description='Enable CGNS') description='Enable CGNS')
variant('exodus', default=True,
description='Compile with Exodus from SEACAS')
variant('gtest', default=True, variant('gtest', default=True,
description='Compile with Gtest') description='Compile with Gtest')
variant('hdf5', default=True, variant('hdf5', default=True,
@ -119,10 +117,17 @@ class Trilinos(CMakePackage):
description='Compile with Aztec') description='Compile with Aztec')
variant('belos', default=True, variant('belos', default=True,
description='Compile with Belos') description='Compile with Belos')
# chaco is disabled by default. As of 12.14.1 libchaco.so
# has the global symbol divide (and maybe others) that can
# lead to symbol clash.
variant('chaco', default=False,
description='Compile with Chaco from SEACAS')
variant('epetra', default=True, variant('epetra', default=True,
description='Compile with Epetra') description='Compile with Epetra')
variant('epetraext', default=True, variant('epetraext', default=True,
description='Compile with EpetraExt') description='Compile with EpetraExt')
variant('exodus', default=True,
description='Compile with Exodus from SEACAS')
variant('ifpack', default=True, variant('ifpack', default=True,
description='Compile with Ifpack') description='Compile with Ifpack')
variant('ifpack2', default=True, variant('ifpack2', default=True,
@ -480,6 +485,18 @@ def cmake_args(self):
'-DTrilinos_ENABLE_SEACASExodus:BOOL=OFF' '-DTrilinos_ENABLE_SEACASExodus:BOOL=OFF'
]) ])
if '+chaco' in spec:
options.extend([
'-DTrilinos_ENABLE_SEACAS:BOOL=ON'
'-DTrilinos_ENABLE_SEACASChaco:BOOL=ON'
])
else:
# don't disable SEACAS, could be needed elsewhere
options.extend([
'-DTrilinos_ENABLE_SEACASChaco:BOOL=OFF',
'-DTrilinos_ENABLE_SEACASNemslice=OFF'
])
# ######################### TPLs ############################# # ######################### TPLs #############################
blas = spec['blas'].libs blas = spec['blas'].libs