 Massimiliano Culpo
					Massimiliano Culpo
				
			
				
					committed by
					
						 Todd Gamblin
						Todd Gamblin
					
				
			
			
				
	
			
			
			 Todd Gamblin
						Todd Gamblin
					
				
			
						parent
						
							d7b624457f
						
					
				
				
					commit
					b27e78cd78
				
			| @@ -23,6 +23,7 @@ | |||||||
| # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||||||
| ############################################################################## | ############################################################################## | ||||||
| import argparse | import argparse | ||||||
|  | import copy | ||||||
| import os | import os | ||||||
| import string | import string | ||||||
| import sys | import sys | ||||||
| @@ -30,10 +31,11 @@ | |||||||
| import llnl.util.tty as tty | import llnl.util.tty as tty | ||||||
| import spack | import spack | ||||||
| import spack.cmd | import spack.cmd | ||||||
|  | import spack.cmd.install as install | ||||||
|  | from llnl.util.filesystem import set_executable | ||||||
| from spack import which | from spack import which | ||||||
| from spack.cmd.edit import edit_package | from spack.cmd.edit import edit_package | ||||||
| from spack.stage import DIYStage | from spack.stage import DIYStage | ||||||
| from llnl.util.filesystem import set_executable |  | ||||||
|  |  | ||||||
| description = "Create a configuration script and module, but don't build." | description = "Create a configuration script and module, but don't build." | ||||||
|  |  | ||||||
| @@ -163,4 +165,26 @@ def setup(self, args): | |||||||
|         # TODO: make this an argument, not a global. |         # TODO: make this an argument, not a global. | ||||||
|         spack.do_checksum = False |         spack.do_checksum = False | ||||||
|  |  | ||||||
|  |         # Install dependencies if requested to do so | ||||||
|  |         if not args.ignore_deps: | ||||||
|  |             parser = argparse.ArgumentParser() | ||||||
|  |             install.setup_parser(parser) | ||||||
|  |             inst_args = copy.deepcopy(args) | ||||||
|  |             inst_args = parser.parse_args( | ||||||
|  |                 ['--only=dependencies'] + args.spec, | ||||||
|  |                 namespace=inst_args | ||||||
|  |             ) | ||||||
|  |             install.install(parser, inst_args) | ||||||
|  |         # Generate spconfig.py | ||||||
|  |         tty.msg( | ||||||
|  |             'Generating spconfig.py [{0}]'.format(package.spec.cshort_spec) | ||||||
|  |         ) | ||||||
|         write_spconfig(package) |         write_spconfig(package) | ||||||
|  |         # Install this package to register it in the DB and permit | ||||||
|  |         # module file regeneration | ||||||
|  |         inst_args = copy.deepcopy(args) | ||||||
|  |         inst_args = parser.parse_args( | ||||||
|  |             ['--only=package', '--fake'] + args.spec, | ||||||
|  |             namespace=inst_args | ||||||
|  |         ) | ||||||
|  |         install.install(parser, inst_args) | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ | |||||||
| from spack import * | from spack import * | ||||||
|  |  | ||||||
|  |  | ||||||
| class Gromacs(Package): | class Gromacs(CMakePackage): | ||||||
|     """GROMACS (GROningen MAchine for Chemical Simulations) is a molecular |     """GROMACS (GROningen MAchine for Chemical Simulations) is a molecular | ||||||
|     dynamics package primarily designed for simulations of proteins, lipids |     dynamics package primarily designed for simulations of proteins, lipids | ||||||
|     and nucleic acids. It was originally developed in the Biophysical |     and nucleic acids. It was originally developed in the Biophysical | ||||||
| @@ -64,28 +64,22 @@ def patch(self): | |||||||
|         if '+plumed' in self.spec: |         if '+plumed' in self.spec: | ||||||
|             self.spec['plumed'].package.apply_patch(self) |             self.spec['plumed'].package.apply_patch(self) | ||||||
|  |  | ||||||
|     def install(self, spec, prefix): |     def cmake_args(self): | ||||||
|  |  | ||||||
|         options = [] |         options = [] | ||||||
|  |  | ||||||
|         if '+mpi' in spec: |         if '+mpi' in self.spec: | ||||||
|             options.append('-DGMX_MPI:BOOL=ON') |             options.append('-DGMX_MPI:BOOL=ON') | ||||||
|  |  | ||||||
|         if '+double' in spec: |         if '+double' in self.spec: | ||||||
|             options.append('-DGMX_DOUBLE:BOOL=ON') |             options.append('-DGMX_DOUBLE:BOOL=ON') | ||||||
|  |  | ||||||
|         if '~shared' in spec: |         if '~shared' in self.spec: | ||||||
|             options.append('-DBUILD_SHARED_LIBS:BOOL=OFF') |             options.append('-DBUILD_SHARED_LIBS:BOOL=OFF') | ||||||
|  |  | ||||||
|         if '+debug' in spec: |         if '+debug' in self.spec: | ||||||
|             options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') |             options.append('-DCMAKE_BUILD_TYPE:STRING=Debug') | ||||||
|         else: |         else: | ||||||
|             options.append('-DCMAKE_BUILD_TYPE:STRING=Release') |             options.append('-DCMAKE_BUILD_TYPE:STRING=Release') | ||||||
|  |  | ||||||
|         options.extend(std_cmake_args) |         return options | ||||||
|  |  | ||||||
|         with working_dir('spack-build', create=True): |  | ||||||
|  |  | ||||||
|             cmake('..', *options) |  | ||||||
|             make() |  | ||||||
|             make('install') |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user