Intel packages: multiple installs and optional scalapack libs (#11384)
Add fixes to support multiple installs and dependents using a subset of IntelPackage functionality. * Update IntelPackage to only return scalapack libraries if the root spec depends on MPI: scalapack requires MPI to be mentioned as a dependency in the DAG. Package builds using intel-mkl for its blas/lapack implementations but not for scalapack were failing to build. Ideally it would be possible to ask if any of the packages in the DAG are actually requesting the scalapack functionality provided by the IntelPackage and only return scalapack libs in that case, but that is not easily done at this time. Fixes #11314 Fixes #11289 * set HOME when the intel silent installer is run. This prevents the installer from using the ~/intel directory (which can cause conflicts for multiple installs of the same IntelPackage) Fixes #9713
This commit is contained in:
		 Glenn Johnson
					Glenn Johnson
				
			
				
					committed by
					
						 Peter Scheibel
						Peter Scheibel
					
				
			
			
				
	
			
			
			 Peter Scheibel
						Peter Scheibel
					
				
			
						parent
						
							3d3cea1c87
						
					
				
				
					commit
					c752af098d
				
			| @@ -964,7 +964,8 @@ def libs(self): | |||||||
|                 root=self.component_lib_dir('mpi'), |                 root=self.component_lib_dir('mpi'), | ||||||
|                 shared=True, recursive=True) + result |                 shared=True, recursive=True) + result | ||||||
|  |  | ||||||
|         if '+mkl' in self.spec or self.provides('scalapack'): |         if '^mpi' in self.spec.root and ('+mkl' in self.spec or | ||||||
|  |                                          self.provides('scalapack')): | ||||||
|             result = self.scalapack_libs + result |             result = self.scalapack_libs + result | ||||||
|  |  | ||||||
|         debug_print(result) |         debug_print(result) | ||||||
| @@ -1199,6 +1200,9 @@ def install(self, spec, prefix): | |||||||
|         install_script = Executable('./install.sh') |         install_script = Executable('./install.sh') | ||||||
|         install_script.add_default_env('TMPDIR', tmpdir) |         install_script.add_default_env('TMPDIR', tmpdir) | ||||||
|  |  | ||||||
|  |         # Need to set HOME to avoid using ~/intel | ||||||
|  |         install_script.add_default_env('HOME', prefix) | ||||||
|  |  | ||||||
|         # perform |         # perform | ||||||
|         install_script('--silent', 'silent.cfg') |         install_script('--silent', 'silent.cfg') | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user