New package: MGIS (#10273)
* add the tfel package * fix the tfel package * fix the tfel package * fix the tfel package * Taking Adam J. Steward' remarks into account * fixes trailing white spaces * Update description * Update dependencies following @adamjstewart adices * Style fixes * Style fixes * Add java optional support * add the maintainers attribute (following @alalazo advice), disable interface not selected (following @adamjstewart advice) * flake8 fixes * Fix Cast3M and python-bindings support. Python detection is made compatible with cmake'FindPythonLibs module (at least how it is used in TFEL) * Style fixes * Style fixes * Fix test on python version * Follow @adamjstewart advices: code is much cleaner and readable * Small fix * Small fix * Add comment * Small fix in cmake option * try again (trying to overcome Travis CI unstable build process) * Add support for the MFrontGenericInterfaceSupport project (MGIS) * Style fixes * Package documentation update * Package documentation update * Fix a typo thanks to Andreas Baumbach review * Follow Adam J. Stewart advices * Fix type
This commit is contained in:
		
							
								
								
									
										73
									
								
								var/spack/repos/builtin/packages/mgis/package.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										73
									
								
								var/spack/repos/builtin/packages/mgis/package.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,73 @@ | |||||||
|  | # Copyright 2013-2018 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) | ||||||
|  |  | ||||||
|  | from spack import * | ||||||
|  |  | ||||||
|  |  | ||||||
|  | class Mgis(CMakePackage): | ||||||
|  |     """ | ||||||
|  |     The MFrontGenericInterfaceSupport project (MGIS) provides helper | ||||||
|  |     functions for various solvers to interact with behaviour written | ||||||
|  |     using MFront generic interface. | ||||||
|  |  | ||||||
|  |     MGIS is written in C++. | ||||||
|  |     Bindings are provided for C and fortran (2003). | ||||||
|  |     A FEniCS binding is also available. | ||||||
|  |     """ | ||||||
|  |  | ||||||
|  |     homepage = "https://thelfer.github.io/mgis/web/index.html" | ||||||
|  |     url      = "https://github.com/thelfer/MFrontGenericInterfaceSupport/archive/MFrontGenericInterfaceSupport-1.0.tar.gz" | ||||||
|  |     git      = "https://github.com/thelfer/MFrontGenericInterfaceSupport.git" | ||||||
|  |     maintainers = ['thelfer'] | ||||||
|  |  | ||||||
|  |     # development branches | ||||||
|  |     version("master", branch="master") | ||||||
|  |     version("rliv-1.0", branch="rliv-1.0") | ||||||
|  |  | ||||||
|  |     # released version | ||||||
|  |     version('1.0', sha256='279c98da00fa6855edf29c2b8f8bad6e7732298dc62ef67d028d6bbeaac043b3') | ||||||
|  |  | ||||||
|  |     # variants | ||||||
|  |     variant('c', default=True, | ||||||
|  |             description='Enables c bindings') | ||||||
|  |     variant('fortran', default=True, | ||||||
|  |             description='Enables fortran bindings') | ||||||
|  |     variant('python', default=True, | ||||||
|  |             description='Enables python bindings') | ||||||
|  |     variant('build_type', default='Release', | ||||||
|  |             description='The build type to build', | ||||||
|  |             values=('Debug', 'Release')) | ||||||
|  |  | ||||||
|  |     # dependencies | ||||||
|  |     depends_on('tfel@3.2.0', when="@1.0") | ||||||
|  |     depends_on('tfel@rliv-3.2', when="@rliv-3.2") | ||||||
|  |     depends_on('tfel@master', when="@master") | ||||||
|  |     depends_on('boost+python', when='+python') | ||||||
|  |     extends('python', when='+python') | ||||||
|  |  | ||||||
|  |     def cmake_args(self): | ||||||
|  |  | ||||||
|  |         args = [] | ||||||
|  |  | ||||||
|  |         for i in ['c', 'fortran', 'python']: | ||||||
|  |             if '+' + i  in self.spec: | ||||||
|  |                 args.append("-Denable-{0}-bindings=ON".format(i)) | ||||||
|  |             else: | ||||||
|  |                 args.append("-Denable-{0}-bindings=OFF".format(i)) | ||||||
|  |  | ||||||
|  |         if '+python' in self.spec: | ||||||
|  |             # adding path to python | ||||||
|  |             python = self.spec['python'] | ||||||
|  |             args.append('-DPYTHON_LIBRARY={0}'. | ||||||
|  |                         format(python.libs[0])) | ||||||
|  |             args.append('-DPYTHON_INCLUDE_DIR={0}'. | ||||||
|  |                         format(python.headers.directories[0])) | ||||||
|  |             args.append('-DPython_ADDITIONAL_VERSIONS={0}'. | ||||||
|  |                         format(python.version.up_to(2))) | ||||||
|  |             # adding path to boost | ||||||
|  |             args.append('-DBOOST_ROOT={0}'. | ||||||
|  |                         format(self.spec['boost'].prefix)) | ||||||
|  |  | ||||||
|  |         return args | ||||||
		Reference in New Issue
	
	Block a user
	 thelfer
					thelfer