summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/salome-medcoupling/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'var/spack/repos/builtin/packages/salome-medcoupling/package.py')
-rw-r--r--var/spack/repos/builtin/packages/salome-medcoupling/package.py144
1 files changed, 144 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/salome-medcoupling/package.py b/var/spack/repos/builtin/packages/salome-medcoupling/package.py
new file mode 100644
index 0000000000..b856cecd28
--- /dev/null
+++ b/var/spack/repos/builtin/packages/salome-medcoupling/package.py
@@ -0,0 +1,144 @@
+# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
+# Spack Project Developers. See the top-level COPYRIGHT file for details.
+#
+# SPDX-License-Identifier: (Apache-2.0 OR MIT)
+#
+# Important feature: a version of salome-medcoupling depand on
+# a specific version of salome-med package
+
+from spack import *
+
+
+class SalomeMedcoupling(CMakePackage):
+ """salome-medcoupling is a part of SALOME platform to manipulate meshes and
+ fields in memory, and use salome-med format for files."""
+
+ maintainers = ['franciskloss']
+
+ homepage = "https://docs.salome-platform.org/latest/dev/MEDCoupling/developer/index.html"
+ git = "https://git.salome-platform.org/gitpub/tools/medcoupling.git"
+
+ version('9.7.0', tag='V9_7_0')
+ version('9.6.0', tag='V9_6_0')
+ version('9.5.0', tag='V9_5_0')
+ version('9.4.0', tag='V9_4_0')
+ version('9.3.0', tag='V9_3_0')
+
+ variant('static', default=False, description='Enable static library build')
+ variant('mpi', default=False, description='Enable MPI')
+ variant('in64', default=False, description='Enable 64 bits indexes')
+ variant('partitioner', default=False, description='Enable partitioner')
+ variant('metis', default=False, description='Enable Metis')
+ variant('scotch', default=False, description='Enable Scotch')
+
+ depends_on('libxml2@2.9.1:')
+ depends_on('libtirpc')
+ depends_on('cppunit')
+ depends_on('python@3.6.5:')
+ depends_on('py-scipy@0.19.1:', type=('build', 'run'))
+ depends_on('py-numpy@1.15.1:', type=('build', 'run'))
+ depends_on('boost+python+numpy@1.58.0:')
+ depends_on('swig@3.0.12:', type='build')
+
+ depends_on('metis@5.1.0:', when='+metis')
+ depends_on('scotch@6.0.4:', when='+scotch')
+ depends_on('mpi', when='+mpi')
+
+ depends_on('salome-configuration@9.7.0', when='@9.7.0')
+ depends_on('salome-med@4.1.0+mpi+static', when='@9.7.0+mpi+static')
+ depends_on('salome-med@4.1.0+mpi', when='@9.7.0+mpi')
+ depends_on('salome-med@4.1.0+static', when='@9.7.0~mpi+static')
+ depends_on('salome-med@4.1.0', when='@9.7.0~mpi')
+
+ depends_on('salome-configuration@9.6.0', when='@9.6.0')
+ depends_on('salome-med@4.1.0+mpi+static', when='@9.6.0+mpi+static')
+ depends_on('salome-med@4.1.0+mpi', when='@9.6.0+mpi')
+ depends_on('salome-med@4.1.0+static', when='@9.6.0~mpi+static')
+ depends_on('salome-med@4.1.0', when='@9.6.0~mpi')
+
+ depends_on('salome-configuration@9.5.0', when='@9.5.0')
+ depends_on('salome-med@4.1.0+mpi+static', when='@9.5.0+mpi+static')
+ depends_on('salome-med@4.1.0+mpi', when='@9.5.0+mpi')
+ depends_on('salome-med@4.1.0+static', when='@9.5.0~mpi+static')
+ depends_on('salome-med@4.1.0', when='@9.5.0~mpi')
+
+ depends_on('salome-configuration@9.4.0', when='@9.4.0')
+ depends_on('salome-med@4.0.0+mpi+static', when='@9.4.0+mpi+static')
+ depends_on('salome-med@4.0.0+mpi', when='@9.4.0+mpi')
+ depends_on('salome-med@4.0.0+static', when='@9.4.0~mpi+static')
+ depends_on('salome-med@4.0.0', when='@9.4.0~mpi')
+
+ depends_on('salome-configuration@9.3.0', when='@9.3.0')
+ depends_on('salome-med@4.0.0+mpi+static', when='@9.3.0+mpi+static')
+ depends_on('salome-med@4.0.0+mpi', when='@9.3.0+mpi')
+ depends_on('salome-med@4.0.0+static', when='@9.3.0~mpi+static')
+ depends_on('salome-med@4.0.0', when='@9.3.0~mpi')
+
+ def check(self):
+ pass
+
+ def setup_build_environment(self, env):
+ if '+metis' in self.spec:
+ env.set('METIS_ROOT_DIR', self.spec['metis'].prefix)
+
+ if '+scotch' in self.spec:
+ env.set('SCOTCH_ROOT_DIR', self.spec['scotch'].prefix)
+
+ def setup_run_environment(self, env):
+ env.prepend_path(
+ 'PYTHONPATH',
+ join_path(
+ self.prefix.lib,
+ 'python{0}'.format(self.spec['python'].version.up_to(2)),
+ 'site-packages'))
+
+ def cmake_args(self):
+ spec = self.spec
+ options = []
+
+ if '+static' in spec:
+ options.extend(['-DMEDCOUPLING_BUILD_STATIC=ON'])
+ else:
+ options.extend(['-DMEDCOUPLING_BUILD_STATIC=OFF'])
+
+ if '+mpi' in spec:
+ options.extend([
+ '-DMEDCOUPLING_USE_MPI=ON',
+ '-DSALOME_USE_MPI=ON'])
+ else:
+ options.extend([
+ '-DMEDCOUPLING_USE_MPI=OFF',
+ '-DSALOME_USE_MPI=OFF'])
+
+ if '+in64' in spec:
+ options.extend(['-DMEDCOUPLING_USE_64BIT_IDS=ON'])
+ else:
+ options.extend(['-DMEDCOUPLING_USE_64BIT_IDS=OFF'])
+
+ if '+partitioner' in spec:
+ options.extend(['-DMEDCOUPLING_ENABLE_PARTITIONER=ON'])
+ else:
+ options.extend(['-DMEDCOUPLING_ENABLE_PARTITIONER=OFF'])
+
+ if '+metis' in spec:
+ options.extend(['-DMEDCOUPLING_ENABLE_PARTITIONER=ON'])
+ options.extend(['-DMEDCOUPLING_PARTITIONER_METIS=ON'])
+ else:
+ options.extend(['-DMEDCOUPLING_PARTITIONER_METIS=OFF'])
+
+ if '+scotch' in spec:
+ options.extend(['-DMEDCOUPLING_ENABLE_PARTITIONER=ON'])
+ options.extend(['-DMEDCOUPLING_PARTITIONER_SCOTCH=ON'])
+ else:
+ options.extend(['-DMEDCOUPLING_PARTITIONER_SCOTCH=OFF'])
+
+ options.extend([
+ '-DMEDCOUPLING_BUILD_DOC=OFF',
+ '-DMEDCOUPLING_ENABLE_PYTHON=ON',
+ '-DMEDCOUPLING_ENABLE_RENUMBER=OFF',
+ '-DMEDCOUPLING_PARTITIONER_PARMETIS=OFF',
+ '-DMEDCOUPLING_PARTITIONER_PTSCOTCH=OFF',
+ '-DMEDCOUPLING_MICROMED=OFF',
+ '-DMEDCOUPLING_BUILD_TESTS=OFF'])
+
+ return options