address flake8 issues
This commit is contained in:
@@ -1,8 +1,10 @@
|
||||
from spack import *
|
||||
import sys, os, re
|
||||
import os
|
||||
import re
|
||||
|
||||
from spack.pkg.builtin.intel import IntelInstaller, filter_pick, get_all_components
|
||||
|
||||
|
||||
class IntelParallelStudio(IntelInstaller):
|
||||
"""Intel Parallel Studio.
|
||||
|
||||
@@ -14,25 +16,31 @@ class IntelParallelStudio(IntelInstaller):
|
||||
|
||||
# TODO: can also try the online installer (will download files on demand)
|
||||
version('composer.2016.2', '1133fb831312eb519f7da897fec223fa',
|
||||
url="file://%s/parallel_studio_xe_2016_composer_edition_update2.tgz" % os.getcwd())
|
||||
url="file://%s/parallel_studio_xe_2016_composer_edition_update2.tgz"
|
||||
% os.getcwd())
|
||||
version('professional.2016.2', '70be832f2d34c9bf596a5e99d5f2d832',
|
||||
url="file://%s/parallel_studio_xe_2016_update2.tgz" % os.getcwd())
|
||||
url="file://%s/parallel_studio_xe_2016_update2.tgz" % os.getcwd())
|
||||
version('cluster.2016.2', '70be832f2d34c9bf596a5e99d5f2d832',
|
||||
url="file://%s/parallel_studio_xe_2016_update2.tgz" % os.getcwd())
|
||||
url="file://%s/parallel_studio_xe_2016_update2.tgz" % os.getcwd())
|
||||
version('composer.2016.3', '3208eeabee951fc27579177b593cefe9',
|
||||
url="file://%s/parallel_studio_xe_2016_composer_edition_update3.tgz" % os.getcwd())
|
||||
url="file://%s/parallel_studio_xe_2016_composer_edition_update3.tgz"
|
||||
% os.getcwd())
|
||||
version('professional.2016.3', 'eda19bb0d0d19709197ede58f13443f3',
|
||||
url="file://%s/parallel_studio_xe_2016_update3.tgz" % os.getcwd())
|
||||
url="file://%s/parallel_studio_xe_2016_update3.tgz" % os.getcwd())
|
||||
version('cluster.2016.3', 'eda19bb0d0d19709197ede58f13443f3',
|
||||
url="file://%s/parallel_studio_xe_2016_update3.tgz" % os.getcwd())
|
||||
url="file://%s/parallel_studio_xe_2016_update3.tgz" % os.getcwd())
|
||||
|
||||
variant('rpath', default=True, description="Add rpath to .cfg files")
|
||||
variant('all', default=False, description="Install all files associated with the requested edition")
|
||||
variant('mpi', default=True, description="Install the Intel MPI library and ITAC tool")
|
||||
variant('all', default=False,
|
||||
description="Install all files associated with the requested edition")
|
||||
variant('mpi', default=True,
|
||||
description="Install the Intel MPI library and ITAC tool")
|
||||
variant('mkl', default=True, description="Install the Intel MKL library")
|
||||
variant('daal', default=True, description="Install the Intel DAAL libraries")
|
||||
variant('daal',
|
||||
default=True, description="Install the Intel DAAL libraries")
|
||||
variant('ipp', default=True, description="Install the Intel IPP libraries")
|
||||
variant('tools', default=True, description="Install the Intel Advisor, VTune Amplifier, and Inspector tools")
|
||||
variant('tools', default=True, description="""Install the Intel Advisor,\
|
||||
VTune Amplifier, and Inspector tools""")
|
||||
|
||||
provides('mpi', when='@cluster:+mpi')
|
||||
provides('mkl', when='+mkl')
|
||||
@@ -41,23 +49,29 @@ class IntelParallelStudio(IntelInstaller):
|
||||
|
||||
def install(self, spec, prefix):
|
||||
|
||||
base_components = "ALL" # when in doubt, install everything
|
||||
base_components = "ALL" # when in doubt, install everything
|
||||
mpi_components = ""
|
||||
mkl_components = ""
|
||||
daal_components = ""
|
||||
ipp_components = ""
|
||||
tools_components = ""
|
||||
|
||||
if spec.satisfies('+all'):
|
||||
base_components = "ALL"
|
||||
else:
|
||||
all_components = get_all_components()
|
||||
base_components = filter_pick(all_components, re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)').search)
|
||||
mpi_components = filter_pick(all_components, re.compile('(icsxe|imb|mpi|itac|intel-tc|clck)').search)
|
||||
mkl_components = filter_pick(all_components, re.compile('(mkl)').search)
|
||||
daal_components = filter_pick(all_components, re.compile('(daal)').search)
|
||||
ipp_components = filter_pick(all_components, re.compile('(ipp)').search)
|
||||
tool_components = filter_pick(all_components, re.compile('(gdb|vtune|inspector|advisor)').search)
|
||||
base_components = filter_pick(all_components,
|
||||
re.compile('(comp|openmp|intel-tbb|icc|ifort|psxe|icsxe-pset)'
|
||||
).search)
|
||||
mpi_components = filter_pick(all_components,
|
||||
re.compile('(icsxe|imb|mpi|itac|intel-tc|clck)').search)
|
||||
mkl_components = filter_pick(all_components,
|
||||
re.compile('(mkl)').search)
|
||||
daal_components = filter_pick(all_components,
|
||||
re.compile('(daal)').search)
|
||||
ipp_components = filter_pick(all_components,
|
||||
re.compile('(ipp)').search)
|
||||
tool_components = filter_pick(all_components,
|
||||
re.compile('(gdb|vtune|inspector|advisor)').search)
|
||||
|
||||
components = base_components
|
||||
if not spec.satisfies('+all'):
|
||||
@@ -69,32 +83,45 @@ def install(self, spec, prefix):
|
||||
components += daal_components
|
||||
if spec.satisfies('+ipp'):
|
||||
components += ipp_components
|
||||
if spec.satisfies('+tools') and (spec.satisfies('@cluster') or spec.satisfies('@professional')):
|
||||
if spec.satisfies('+tools') and (spec.satisfies('@cluster') or\
|
||||
spec.satisfies('@professional')):
|
||||
components += tool_components
|
||||
|
||||
self.intel_components = ';'.join(components)
|
||||
IntelInstaller.install(self, spec, prefix)
|
||||
|
||||
absbindir = os.path.dirname(os.path.realpath(os.path.join(self.prefix.bin, "icc")))
|
||||
abslibdir = os.path.dirname(os.path.realpath(os.path.join(self.prefix.lib, "intel64", "libimf.a")))
|
||||
absbindir = os.path.dirname(os.path.realpath(os.path.join(
|
||||
self.prefix.bin, "icc")))
|
||||
abslibdir = os.path.dirname(os.path.realpath(os.path.join
|
||||
(self.prefix.lib, "intel64", "libimf.a")))
|
||||
|
||||
relbindir = absbindir.strip(os.path.commonprefix([self.prefix, absbindir]))
|
||||
os.symlink(self.global_license_file, os.path.join(absbindir, "license.lic"))
|
||||
if spec.satisfies('+tools') and (spec.satisfies('@cluster') or spec.satisfies('@professional')):
|
||||
relbindir = absbindir.strip(os.path.commonprefix([self.prefix,
|
||||
absbindir]))
|
||||
os.symlink(self.global_license_file, os.path.join(absbindir,
|
||||
"license.lic"))
|
||||
if spec.satisfies('+tools') and (spec.satisfies('@cluster') or\
|
||||
spec.satisfies('@professional')):
|
||||
os.mkdir(os.path.join(self.prefix, "inspector_xe/licenses"))
|
||||
os.symlink(self.global_license_file, os.path.join(self.prefix, "inspector_xe/licenses", "license.lic"))
|
||||
os.symlink(self.global_license_file, os.path.join(
|
||||
self.prefix, "inspector_xe/licenses", "license.lic"))
|
||||
os.mkdir(os.path.join(self.prefix, "advisor_xe/licenses"))
|
||||
os.symlink(self.global_license_file, os.path.join(self.prefix, "advisor_xe/licenses", "license.lic"))
|
||||
os.symlink(self.global_license_file, os.path.join(
|
||||
self.prefix, "advisor_xe/licenses", "license.lic"))
|
||||
os.mkdir(os.path.join(self.prefix, "vtune_amplifier_xe/licenses"))
|
||||
os.symlink(self.global_license_file, os.path.join(self.prefix, "vtune_amplifier_xe/licenses", "license.lic"))
|
||||
os.symlink(self.global_license_file, os.path.join(
|
||||
self.prefix, "vtune_amplifier_xe/licenses", "license.lic"))
|
||||
|
||||
if (spec.satisfies('+all') or spec.satisfies('+mpi')) and spec.satisfies('@cluster'):
|
||||
os.symlink(self.global_license_file, os.path.join(self.prefix, "itac_latest", "license.lic"))
|
||||
if (spec.satisfies('+all') or spec.satisfies('+mpi')) and\
|
||||
spec.satisfies('@cluster'):
|
||||
os.symlink(self.global_license_file, os.path.join(
|
||||
self.prefix, "itac_latest", "license.lic"))
|
||||
|
||||
if spec.satisfies('+rpath'):
|
||||
for compiler_command in ["icc", "icpc", "ifort"]:
|
||||
cfgfilename = os.path.join(absbindir, "%s.cfg" %(compiler_command))
|
||||
cfgfilename = os.path.join(absbindir, "%s.cfg" %\
|
||||
compiler_command)
|
||||
with open(cfgfilename, "w") as f:
|
||||
f.write('-Xlinker -rpath -Xlinker %s\n' %(abslibdir))
|
||||
f.write('-Xlinker -rpath -Xlinker %s\n' % abslibdir)
|
||||
|
||||
os.symlink(os.path.join(self.prefix.man, "common", "man1"), os.path.join(self.prefix.man, "man1"))
|
||||
os.symlink(os.path.join(self.prefix.man, "common", "man1"),
|
||||
os.path.join(self.prefix.man, "man1"))
|
||||
|
Reference in New Issue
Block a user