Intel prefixes (#7469)
Consolidate prefix calculation logic for intel packages into the IntelPackage class. Add documentation on installing Intel packages with Spack an (alternatively) adding them as external packages in Spack.
This commit is contained in:

committed by
scheibelp

parent
e860307c31
commit
a86f22d755
@@ -22,10 +22,7 @@
|
||||
# License along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
##############################################################################
|
||||
import os
|
||||
|
||||
from spack import *
|
||||
from spack.environment import EnvironmentModifications
|
||||
|
||||
|
||||
class Intel(IntelPackage):
|
||||
@@ -33,82 +30,31 @@ class Intel(IntelPackage):
|
||||
|
||||
homepage = "https://software.intel.com/en-us/intel-parallel-studio-xe"
|
||||
|
||||
version('18.0.3', '234223cc470717c2095456d9f048d690',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz')
|
||||
version('18.0.1', '28cb807126d713350f4aa6f9f167448a',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz')
|
||||
version('18.0.0', '31ba768fba6e7322957b03feaa3add28',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12067/parallel_studio_xe_2018_composer_edition.tgz')
|
||||
version('17.0.4', 'd03d351809e182c481dc65e07376d9a2',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz')
|
||||
version('17.0.3', '52344df122c17ddff3687f84ceb21623',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz')
|
||||
version('17.0.2', '2891ab1ece43eb61b6ab892f07c47f01',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz')
|
||||
version('17.0.1', '1f31976931ed8ec424ac7c3ef56f5e85',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz')
|
||||
version('17.0.0', 'b67da0065a17a05f110ed1d15c3c6312',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9656/parallel_studio_xe_2017_composer_edition.tgz')
|
||||
version('16.0.4', '2bc9bfc9be9c1968a6e42efb4378f40e',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz')
|
||||
version('16.0.3', '3208eeabee951fc27579177b593cefe9',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz')
|
||||
version('16.0.2', '1133fb831312eb519f7da897fec223fa',
|
||||
url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz')
|
||||
# Same as in ../intel-parallel-studio/package.py, Composer Edition,
|
||||
# but the version numbering in Spack differs.
|
||||
version('18.0.3', '234223cc470717c2095456d9f048d690', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13002/parallel_studio_xe_2018_update3_composer_edition.tgz')
|
||||
version('18.0.2', '76f820f53de4c1ff998229c983cf4f53', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12722/parallel_studio_xe_2018_update2_composer_edition.tgz')
|
||||
version('18.0.1', '28cb807126d713350f4aa6f9f167448a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12381/parallel_studio_xe_2018_update1_composer_edition.tgz')
|
||||
version('18.0.0', '31ba768fba6e7322957b03feaa3add28', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12067/parallel_studio_xe_2018_composer_edition.tgz')
|
||||
#
|
||||
version('17.0.7', '4c02a4a29a8f2424f31baa23116a1001', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12860/parallel_studio_xe_2017_update7_composer_edition.tgz')
|
||||
version('17.0.6', 'd96cce0c3feef20091efde458f581a9f', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/12538/parallel_studio_xe_2017_update6_composer_edition.tgz')
|
||||
# version('17.0.5', -- TBD --
|
||||
version('17.0.4', 'd03d351809e182c481dc65e07376d9a2', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11541/parallel_studio_xe_2017_update4_composer_edition.tgz')
|
||||
version('17.0.3', '52344df122c17ddff3687f84ceb21623', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11464/parallel_studio_xe_2017_update3_composer_edition.tgz')
|
||||
version('17.0.2', '2891ab1ece43eb61b6ab892f07c47f01', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/11302/parallel_studio_xe_2017_update2_composer_edition.tgz')
|
||||
version('17.0.1', '1f31976931ed8ec424ac7c3ef56f5e85', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/10978/parallel_studio_xe_2017_update1_composer_edition.tgz')
|
||||
version('17.0.0', 'b67da0065a17a05f110ed1d15c3c6312', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9656/parallel_studio_xe_2017_composer_edition.tgz')
|
||||
#
|
||||
version('16.0.4', '2bc9bfc9be9c1968a6e42efb4378f40e', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9785/parallel_studio_xe_2016_composer_edition_update4.tgz')
|
||||
version('16.0.3', '3208eeabee951fc27579177b593cefe9', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/9063/parallel_studio_xe_2016_composer_edition_update3.tgz')
|
||||
version('16.0.2', '1133fb831312eb519f7da897fec223fa', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8680/parallel_studio_xe_2016_composer_edition_update2.tgz')
|
||||
#
|
||||
# Grandfathered release; different directory structure.
|
||||
version('15.0.6', 'da9f8600c18d43d58fba0488844f79c9', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/8432/l_compxe_2015.6.233.tgz')
|
||||
version('15.0.1', '85beae681ae56411a8e791a7c44a5c0a', url='http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/4933/l_compxe_2015.1.133.tgz')
|
||||
|
||||
variant('rpath', default=True, description='Add rpath to .cfg files')
|
||||
|
||||
components = [
|
||||
# Common files
|
||||
'intel-comp-',
|
||||
'intel-openmp',
|
||||
|
||||
# C/C++
|
||||
'intel-icc',
|
||||
|
||||
# Fortran
|
||||
'intel-ifort',
|
||||
]
|
||||
|
||||
@property
|
||||
def license_files(self):
|
||||
return [
|
||||
'Licenses/license.lic',
|
||||
join_path('compilers_and_libraries', 'linux', 'bin',
|
||||
'intel64', 'license.lic')
|
||||
]
|
||||
|
||||
@run_after('install')
|
||||
def rpath_configuration(self):
|
||||
if '+rpath' in self.spec:
|
||||
bin_dir = join_path(self.prefix, 'compilers_and_libraries',
|
||||
'linux', 'bin', 'intel64')
|
||||
lib_dir = join_path(self.prefix, 'compilers_and_libraries',
|
||||
'linux', 'compiler', 'lib', 'intel64_lin')
|
||||
for compiler in ['icc', 'icpc', 'ifort']:
|
||||
cfgfilename = join_path(bin_dir, '{0}.cfg'.format(compiler))
|
||||
with open(cfgfilename, 'w') as f:
|
||||
f.write('-Xlinker -rpath -Xlinker {0}\n'.format(lib_dir))
|
||||
|
||||
def setup_environment(self, spack_env, run_env):
|
||||
"""Adds environment variables to the generated module file.
|
||||
|
||||
These environment variables come from running:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ source bin/compilervars.sh intel64
|
||||
"""
|
||||
# NOTE: Spack runs setup_environment twice, once pre-build to set up
|
||||
# the build environment, and once post-installation to determine
|
||||
# the environment variables needed at run-time to add to the module
|
||||
# file. The script we need to source is only present post-installation,
|
||||
# so check for its existence before sourcing.
|
||||
# TODO: At some point we should split setup_environment into
|
||||
# setup_build_environment and setup_run_environment to get around
|
||||
# this problem.
|
||||
compilervars = os.path.join(self.prefix.bin, 'compilervars.sh')
|
||||
|
||||
if os.path.isfile(compilervars):
|
||||
run_env.extend(EnvironmentModifications.from_sourcing_file(
|
||||
compilervars, 'intel64'))
|
||||
# Since the current package is a subset of 'intel-parallel-studio',
|
||||
# all remaining Spack actions are handled in the package class.
|
||||
|
Reference in New Issue
Block a user