예제 #1
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""
        shlib_ext = get_shared_lib_ext()

        binprefix = 'bin/intel64'
        libprefix = 'lib/intel64'
        if LooseVersion(self.version) >= LooseVersion('2011'):
            if LooseVersion(self.version) <= LooseVersion('2011.3.174'):
                binprefix = 'bin'
            elif LooseVersion(self.version) >= LooseVersion('2013_sp1'):
                binprefix = 'bin'
            else:
                libprefix = 'compiler/lib/intel64'

        bins = ['ifort']
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append('idb')

        libs = [
            'ifcore.a',
            'ifcore.%s' % shlib_ext, 'iomp5.a',
            'iomp5.%s' % shlib_ext
        ]
        custom_paths = {
            'files': [os.path.join(binprefix, x) for x in bins] +
            [os.path.join(libprefix, 'lib%s' % l) for l in libs],
            'dirs': [],
        }

        custom_commands = ["which ifort"]

        IntelBase.sanity_check_step(self,
                                    custom_paths=custom_paths,
                                    custom_commands=custom_commands)
예제 #2
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""

        binprefix = 'bin/intel64'
        libprefix = 'lib/intel64'
        if LooseVersion(self.version) >= LooseVersion('2011'):
            if LooseVersion(self.version) <= LooseVersion('2011.3.174'):
                binprefix = 'bin'
            elif LooseVersion(self.version) >= LooseVersion('2013_sp1'):
                binprefix = 'bin'
            else:
                libprefix = 'compiler/lib/intel64'

        bins = ['ifort']
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append('idb')

        custom_paths = {
            'files': [os.path.join(binprefix, x) for x in bins] +
            [os.path.join(libprefix, 'lib%s' % x) for x in ['ifcore.a', 'ifcore.so', 'iomp5.a', 'iomp5.so']],
            'dirs': [],
        }

        IntelBase.sanity_check_step(self, custom_paths=custom_paths)
예제 #3
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""
        shlib_ext = get_shared_lib_ext()

        binprefix = 'bin/intel64'
        libprefix = 'lib/intel64'
        if LooseVersion(self.version) >= LooseVersion('2011'):
            if LooseVersion(self.version) <= LooseVersion('2011.3.174'):
                binprefix = 'bin'
            elif LooseVersion(self.version) >= LooseVersion('2013_sp1'):
                binprefix = 'bin'
            else:
                libprefix = 'compiler/lib/intel64'

        bins = ['ifort']
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append('idb')

        libs = ['ifcore.a', 'ifcore.%s' % shlib_ext, 'iomp5.a', 'iomp5.%s' % shlib_ext]
        custom_paths = {
            'files': [os.path.join(binprefix, x) for x in bins] + [os.path.join(libprefix, 'lib%s' % l) for l in libs],
            'dirs': [],
        }

        custom_commands = ["which ifort"]

        IntelBase.sanity_check_step(self, custom_paths=custom_paths, custom_commands=custom_commands)
예제 #4
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""
        shlib_ext = get_shared_lib_ext()

        binprefix = 'bin/intel64'
        libprefix = 'lib/intel64'
        if LooseVersion(self.version) >= LooseVersion('2011'):
            if LooseVersion(self.version) <= LooseVersion('2011.3.174'):
                binprefix = 'bin'
            elif LooseVersion(self.version) >= LooseVersion('2013_sp1'):
                binprefix = 'bin'
            else:
                libprefix = 'compiler/lib/intel64'

        bins = ['ifort']
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append('idb')

        libs = ['ifcore.a', 'ifcore.%s' % shlib_ext, 'iomp5.a', 'iomp5.%s' % shlib_ext]
        custom_paths = {
            'files': [os.path.join(binprefix, x) for x in bins] + [os.path.join(libprefix, 'lib%s' % l) for l in libs],
            'dirs': [],
        }

        # make very sure that expected 'compilers_and_libraries_<VERSION>/linux' subdir is there for recent versions,
        # since we rely on it being there in make_module_req_guess
        if self.comp_libs_subdir:
            custom_paths['dirs'].append(self.comp_libs_subdir)

        custom_commands = ["which ifort"]

        IntelBase.sanity_check_step(self, custom_paths=custom_paths, custom_commands=custom_commands)
예제 #5
0
 def configure_step(self):
     """Configure TBB build/installation."""
     if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
         IntelBase.configure_step(self)
     else:
         # no custom configure step when building from source
         pass
예제 #6
0
 def configure_step(self):
     """Configure TBB build/installation."""
     if self.toolchain.is_system_toolchain():
         IntelBase.configure_step(self)
     else:
         # no custom configure step when building from source
         pass
예제 #7
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""

        binprefix = "bin/intel64"
        libprefix = "lib/intel64/lib"
        if LooseVersion(self.version) >= LooseVersion("2011"):
            if LooseVersion(self.version) <= LooseVersion("2011.3.174"):
                binprefix = "bin"
            elif LooseVersion(self.version) >= LooseVersion("2013_sp1"):
                binprefix = "bin"
                libprefix = "lib/intel64/lib"
            else:
                libprefix = "compiler/lib/intel64/lib"

        bins = ["ifort"]
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append("idb")

        custom_paths = {
            'files': ["%s/%s" % (binprefix, x) for x in bins] + [
                "%s%s" % (libprefix, x)
                for x in ["ifcore.a", "ifcore.so", "iomp5.a", "iomp5.so"]
            ],
            'dirs': [],
        }

        IntelBase.sanity_check_step(self, custom_paths=custom_paths)
예제 #8
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""

        binprefix = "bin/intel64"
        libprefix = "lib/intel64/lib"
        if LooseVersion(self.version) >= LooseVersion("2011"):
            if LooseVersion(self.version) <= LooseVersion("2011.3.174"):
                binprefix = "bin"
            elif LooseVersion(self.version) >= LooseVersion("2013_sp1"):
                binprefix = "bin"
                libprefix = "lib/intel64/lib"
            else:
                libprefix = "compiler/lib/intel64/lib"

        bins = ["ifort"]
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append("idb")

        custom_paths = {
            'files': ["%s/%s" % (binprefix, x) for x in bins] +
                     ["%s%s" % (libprefix, x) for x in ["ifcore.a", "ifcore.so", "iomp5.a", "iomp5.so"]],
            'dirs': [],
        }

        IntelBase.sanity_check_step(self, custom_paths=custom_paths)
예제 #9
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""

        binprefix = 'bin/intel64'
        libprefix = 'lib/intel64'
        if LooseVersion(self.version) >= LooseVersion('2011'):
            if LooseVersion(self.version) <= LooseVersion('2011.3.174'):
                binprefix = 'bin'
            elif LooseVersion(self.version) >= LooseVersion('2013_sp1'):
                binprefix = 'bin'
            else:
                libprefix = 'compiler/lib/intel64'

        bins = ['ifort']
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append('idb')

        custom_paths = {
            'files': [os.path.join(binprefix, x) for x in bins] + [
                os.path.join(libprefix, 'lib%s' % x)
                for x in ['ifcore.a', 'ifcore.so', 'iomp5.a', 'iomp5.so']
            ],
            'dirs': [],
        }

        IntelBase.sanity_check_step(self, custom_paths=custom_paths)
예제 #10
0
 def configure_step(self):
     """Configure TBB build/installation."""
     if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
         IntelBase.configure_step(self)
     else:
         # no custom configure step when building from source
         pass
예제 #11
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""
        shlib_ext = get_shared_lib_ext()

        binprefix = 'bin/intel64'
        libprefix = 'lib/intel64'
        if LooseVersion(self.version) >= LooseVersion('2011'):
            if LooseVersion(self.version) <= LooseVersion('2011.3.174'):
                binprefix = 'bin'
            elif LooseVersion(self.version) >= LooseVersion('2013_sp1'):
                binprefix = 'bin'
            else:
                libprefix = 'compiler/lib/intel64'

        bins = ['ifort']
        if LooseVersion(self.version) < LooseVersion('2013'):
            # idb is not shipped with ifort anymore in 2013.x versions (it is with icc though)
            bins.append('idb')

        libs = ['ifcore.a', 'ifcore.%s' % shlib_ext, 'iomp5.a', 'iomp5.%s' % shlib_ext]
        custom_paths = {
            'files': [os.path.join(binprefix, x) for x in bins] + [os.path.join(libprefix, 'lib%s' % l) for l in libs],
            'dirs': [],
        }

        # make very sure that expected 'compilers_and_libraries_<VERSION>/linux' subdir is there for recent versions,
        # since we rely on it being there in make_module_req_guess
        if self.comp_libs_subdir:
            custom_paths['dirs'].append(self.comp_libs_subdir)

        custom_commands = ["which ifort"]

        IntelBase.sanity_check_step(self, custom_paths=custom_paths, custom_commands=custom_commands)
예제 #12
0
 def build_step(self):
     """Configure TBB build/installation."""
     if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
         IntelBase.build_step(self)
     else:
         # build with: make compiler={icl, icc, gcc, clang}
         self.cfg.update('buildopts', 'compiler="%s"' % os.getenv('CC'))
         ConfigureMake.build_step(self)
예제 #13
0
 def build_step(self):
     """Configure TBB build/installation."""
     if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
         IntelBase.build_step(self)
     else:
         # build with: make compiler={icl, icc, gcc, clang}
         self.cfg.update('buildopts', 'compiler="%s"' % os.getenv('CC'))
         ConfigureMake.build_step(self)
예제 #14
0
    def install_step(self):
        """Custom install step, to add extra symlinks"""
        if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
            silent_cfg_names_map = None
            silent_cfg_extras = None

            if LooseVersion(self.version) < LooseVersion('4.2'):
                silent_cfg_names_map = {
                    'activation_name': ACTIVATION_NAME_2012,
                    'license_file_name': LICENSE_FILE_NAME_2012,
                }

            elif LooseVersion(self.version) < LooseVersion('4.4'):
                silent_cfg_names_map = {
                    'install_mode_name': INSTALL_MODE_NAME_2015,
                    'install_mode': INSTALL_MODE_2015,
                }

            # In case of TBB 4.4.x and newer we have to specify ARCH_SELECTED in silent.cfg
            if LooseVersion(self.version) >= LooseVersion('4.4'):
                silent_cfg_extras = {
                    'ARCH_SELECTED': self.arch.upper()
                }

            IntelBase.install_step(self, silent_cfg_names_map=silent_cfg_names_map, silent_cfg_extras=silent_cfg_extras)

            # determine libdir
            os.chdir(self.installdir)
            if LooseVersion(self.version) < LooseVersion('4.1.0'):
                libglob = 'tbb/lib/intel64/cc*libc*_kernel*'
                libs = sorted(glob.glob(libglob), key=LooseVersion)
                if len(libs):
                    # take the last one, should be ordered by cc version
                    # we're only interested in the last bit
                    libdir = libs[-1].split('/')[-1]
                else:
                    raise EasyBuildError("No libs found using %s in %s", libglob, self.installdir)
            else:
                libdir = get_tbb_gccprefix()

            self.libpath = os.path.join('tbb', 'libs', 'intel64', libdir)
            self.log.debug("self.libpath: %s" % self.libpath)
            # applications go looking into tbb/lib so we move what's in there to libs
            # and symlink the right lib from /tbb/libs/intel64/... to lib
            install_libpath = os.path.join(self.installdir, 'tbb', 'lib')
            shutil.move(install_libpath, os.path.join(self.installdir, 'tbb', 'libs'))
            os.symlink(os.path.join(self.installdir, self.libpath), install_libpath)
        else:
            # no custom install step when building from source (building is done in install directory)
            cand_lib_paths = glob.glob(os.path.join(self.installdir, 'build', '*_release'))
            if len(cand_lib_paths) == 1:
                self.libpath = os.path.join('build', os.path.basename(cand_lib_paths[0]))
            else:
                raise EasyBuildError("Failed to isolate location of libraries: %s", cand_lib_paths)
예제 #15
0
    def install_step(self):
        """Custom install step, to add extra symlinks"""
        if self.toolchain.is_system_toolchain():
            silent_cfg_names_map = None
            silent_cfg_extras = None

            if LooseVersion(self.version) < LooseVersion('4.2'):
                silent_cfg_names_map = {
                    'activation_name': ACTIVATION_NAME_2012,
                    'license_file_name': LICENSE_FILE_NAME_2012,
                }

            elif LooseVersion(self.version) < LooseVersion('4.4'):
                silent_cfg_names_map = {
                    'install_mode_name': INSTALL_MODE_NAME_2015,
                    'install_mode': INSTALL_MODE_2015,
                }

            # In case of TBB 4.4.x and newer we have to specify ARCH_SELECTED in silent.cfg
            if LooseVersion(self.version) >= LooseVersion('4.4'):
                silent_cfg_extras = {
                    'ARCH_SELECTED': self.arch.upper()
                }

            IntelBase.install_step(self, silent_cfg_names_map=silent_cfg_names_map, silent_cfg_extras=silent_cfg_extras)

            # determine libdir
            os.chdir(self.installdir)
            if LooseVersion(self.version) < LooseVersion('4.1.0'):
                libglob = 'tbb/lib/intel64/cc*libc*_kernel*'
                libs = sorted(glob.glob(libglob), key=LooseVersion)
                if len(libs):
                    # take the last one, should be ordered by cc version
                    # we're only interested in the last bit
                    libdir = libs[-1].split('/')[-1]
                else:
                    raise EasyBuildError("No libs found using %s in %s", libglob, self.installdir)
            else:
                libdir = get_tbb_gccprefix()

            self.libpath = os.path.join('tbb', 'libs', 'intel64', libdir)
            self.log.debug("self.libpath: %s" % self.libpath)
            # applications go looking into tbb/lib so we move what's in there to libs
            # and symlink the right lib from /tbb/libs/intel64/... to lib
            install_libpath = os.path.join(self.installdir, 'tbb', 'lib')
            shutil.move(install_libpath, os.path.join(self.installdir, 'tbb', 'libs'))
            os.symlink(os.path.join(self.installdir, self.libpath), install_libpath)
        else:
            # no custom install step when building from source (building is done in install directory)
            cand_lib_paths = glob.glob(os.path.join(self.installdir, 'build', '*_release'))
            if len(cand_lib_paths) == 1:
                self.libpath = os.path.join('build', os.path.basename(cand_lib_paths[0]))
            else:
                raise EasyBuildError("Failed to isolate location of libraries: %s", cand_lib_paths)
예제 #16
0
    def build_step(self):
        """Configure TBB build/installation."""
        if self.toolchain.is_system_toolchain():
            IntelBase.build_step(self)
        else:
            # build with: make compiler={icl, icc, gcc, clang}
            self.cfg.update('buildopts', 'compiler="%s"' % os.getenv('CC'))
            ConfigureMake.build_step(self)

            if self.cfg['with_python']:
                # Uses the Makefile target `python`
                self.cfg.update('buildopts', 'python')
                ConfigureMake.build_step(self)
예제 #17
0
 def extra_options():
     extra_vars = [('interfaces', [
         True,
         "Indicates whether interfaces should be built (default: True)",
         CUSTOM
     ])]
     return IntelBase.extra_options(extra_vars)
예제 #18
0
 def extra_options():
     """Add easyconfig parameters custom to imkl (e.g. interfaces)."""
     extra_vars = {
         'interfaces':
         [True, "Indicates whether interfaces should be built", CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
예제 #19
0
 def extra_options():
     extra_vars = {
         'libfabric_configopts':
         ['', 'Configure options for the provided libfabric', CUSTOM],
         'libfabric_rebuild': [
             True,
             'Try to rebuild internal libfabric instead of using provided binary',
             CUSTOM
         ],
         'ofi_internal': [
             True,
             'Use internal shipped libfabric instead of external libfabric',
             CUSTOM
         ],
         'set_mpi_wrappers_compiler': [
             False,
             'Override default compiler used by MPI wrapper commands',
             CUSTOM
         ],
         'set_mpi_wrapper_aliases_gcc':
         [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM],
         'set_mpi_wrapper_aliases_intel': [
             False, 'Set compiler for mpiicc/mpiicpc/mpiifort via aliases',
             CUSTOM
         ],
         'set_mpi_wrappers_all': [
             False, 'Set (default) compiler for all MPI wrapper commands',
             CUSTOM
         ],
     }
     return IntelBase.extra_options(extra_vars)
예제 #20
0
파일: impi.py 프로젝트: surak/JSC
 def extra_options():
     extra_vars = {
         'set_mpi_wrappers_compiler': [False, 'Override default compiler used by MPI wrapper commands', CUSTOM],
         'set_mpi_wrapper_aliases_gcc': [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM],
         'set_mpi_wrapper_aliases_intel': [False, 'Set compiler for mpiicc/mpiicpc/mpiifort via aliases', CUSTOM],
         'set_mpi_wrappers_all': [False, 'Set (default) compiler for all MPI wrapper commands', CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
 def extra_options():
     extra_vars = {
         'set_mpi_wrappers_compiler': [False, 'Override default compiler used by MPI wrapper commands', CUSTOM],
         'set_mpi_wrapper_aliases_gcc': [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM],
         'set_mpi_wrapper_aliases_intel': [False, 'Set compiler for mpiicc/mpiicpc/mpiifort via aliases', CUSTOM],
         'set_mpi_wrappers_all': [False, 'Set (default) compiler for all MPI wrapper commands', CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
예제 #22
0
 def extra_options():
     extra_vars = {
         'ofi_internal': [True, 'Use internal shipped libfabric instead of external libfabric', CUSTOM],
         'set_mpi_wrappers_compiler': [False, 'Override default compiler used by MPI wrapper commands', CUSTOM],
         'set_mpi_wrapper_aliases_gcc': [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM],
         'set_mpi_wrapper_aliases_intel': [False, 'Set compiler for mpiicc/mpiicpc/mpiifort via aliases', CUSTOM],
         'set_mpi_wrappers_all': [False, 'Set (default) compiler for all MPI wrapper commands', CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
예제 #23
0
    def sanity_check_step(self):
        """Custom sanity check paths for ifort."""

        binprefix = "bin/intel64"
        libprefix = "lib/intel64/lib"
        if LooseVersion(self.version) >= LooseVersion("2011"):
            if LooseVersion(self.version) <= LooseVersion("2011.3.174"):
                binprefix = "bin"
            else:
                libprefix = "compiler/lib/intel64/lib"

        custom_paths = {
                        'files': ["%s/%s" % (binprefix, x) for x in ["ifort", "idb"]] +
                                 ["%s%s" % (libprefix, x) for x in ["ifcore.a", "ifcore.so",
                                                                    "iomp5.a", "iomp5.so"]],
                        'dirs': []
                       }

        IntelBase.sanity_check_step(self, custom_paths=custom_paths)
예제 #24
0
 def extra_options():
     extra_vars = IntelBase.extra_options()
     extra_vars.update(ConfigureMake.extra_options())
     extra_vars.update({
         'with_python': [
             False, "Should the TBB4Python bindings be built as well?",
             CUSTOM
         ],
     })
     return extra_vars
예제 #25
0
 def extra_options():
     """Add easyconfig parameters custom to imkl (e.g. interfaces)."""
     extra_vars = {
         'interfaces':
         [True, "Indicates whether interfaces should be built", CUSTOM],
         'flexiblas': [
             None,
             "Indicates whether FlexiBLAS-compatible libraries should be built, "
             "default from version 2021", CUSTOM
         ],
     }
     return IntelBase.extra_options(extra_vars)
예제 #26
0
 def extra_options():
     extra_vars = {
         'ofi_internal': [
             True,
             'Use internal shipped libfabric instead of external libfabric',
             CUSTOM
         ],
         'set_mpi_wrappers_compiler': [
             False,
             'Override default compiler used by MPI wrapper commands',
             CUSTOM
         ],
         'set_mpi_wrapper_aliases_gcc':
         [False, 'Set compiler for mpigcc/mpigxx via aliases', CUSTOM],
         'set_mpi_wrapper_aliases_intel': [
             False, 'Set compiler for mpiicc/mpiicpc/mpiifort via aliases',
             CUSTOM
         ],
         'set_mpi_wrappers_all': [
             False, 'Set (default) compiler for all MPI wrapper commands',
             CUSTOM
         ],
     }
     return IntelBase.extra_options(extra_vars)
예제 #27
0
 def extra_options():
     extra_vars = {
         'preferredmpi': ['impi3', "Preferred MPI type", CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
예제 #28
0
    def install_step(self):
        """Custom install step, to add extra symlinks"""
        install_tbb_lib_path = os.path.join(self.installdir, 'tbb', 'lib')

        if self.toolchain.is_system_toolchain():
            silent_cfg_names_map = None
            silent_cfg_extras = None

            if LooseVersion(self.version) < LooseVersion('4.2'):
                silent_cfg_names_map = {
                    'activation_name': ACTIVATION_NAME_2012,
                    'license_file_name': LICENSE_FILE_NAME_2012,
                }

            elif LooseVersion(self.version) < LooseVersion('4.4'):
                silent_cfg_names_map = {
                    'install_mode_name': INSTALL_MODE_NAME_2015,
                    'install_mode': INSTALL_MODE_2015,
                }

            # In case of TBB 4.4.x and newer we have to specify ARCH_SELECTED in silent.cfg
            if LooseVersion(self.version) >= LooseVersion('4.4'):
                silent_cfg_extras = {'ARCH_SELECTED': self.arch.upper()}

            IntelBase.install_step(self,
                                   silent_cfg_names_map=silent_cfg_names_map,
                                   silent_cfg_extras=silent_cfg_extras)

            # determine libdir
            os.chdir(self.installdir)
            libpath = os.path.join('tbb', 'libs', 'intel64')
            if LooseVersion(self.version) < LooseVersion('4.1.0'):
                libglob = 'tbb/lib/intel64/cc*libc*_kernel*'
                libs = sorted(glob.glob(libglob), key=LooseVersion)
                if libs:
                    # take the last one, should be ordered by cc version
                    # we're only interested in the last bit
                    libdir = os.path.basename(libs[-1])
                else:
                    raise EasyBuildError("No libs found using %s in %s",
                                         libglob, self.installdir)
            else:
                libdir = get_tbb_gccprefix(libpath)

            libpath = os.path.join(libpath, libdir)
            # applications go looking into tbb/lib so we move what's in there to tbb/libs
            shutil.move(install_tbb_lib_path,
                        os.path.join(self.installdir, 'tbb', 'libs'))
            # And add a symlink of the library folder to tbb/lib
            symlink(os.path.join(self.installdir, libpath),
                    install_tbb_lib_path)
        else:
            # no custom install step when building from source (building is done in install directory)
            cand_lib_paths = glob.glob(
                os.path.join(self.installdir, 'build', '*_release'))
            if len(cand_lib_paths) == 1:
                libpath = os.path.join('build',
                                       os.path.basename(cand_lib_paths[0]))
            else:
                raise EasyBuildError(
                    "Failed to isolate location of libraries: %s",
                    cand_lib_paths)

        self.log.debug("libpath: %s" % libpath)
        # applications usually look into /lib, so we move the folder there and symlink the original one to it
        # This is also important so that /lib and /lib64 are actually on the same level
        root_lib_path = os.path.join(self.installdir, 'lib')
        move_file(libpath, root_lib_path)
        symlink(os.path.relpath(root_lib_path, os.path.join(libpath)),
                libpath,
                use_abspath_source=False)

        # Install CMake config files if possible
        if self._has_cmake() and LooseVersion(
                self.version) >= LooseVersion('2020.0'):
            cmake_install_dir = os.path.join(root_lib_path, 'cmake', 'TBB')
            cmd = [
                'cmake',
                '-DINSTALL_DIR=' + cmake_install_dir,
                '-DSYSTEM_NAME=Linux',
                '-P tbb_config_installer.cmake',
            ]
            run_cmd(' '.join(cmd), path=os.path.join(self.builddir, 'cmake'))
예제 #29
0
 def extra_options():
     extra_vars = {
         'preferredmpi': ['impi3', "Preferred MPI type", CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
예제 #30
0
 def extra_options():
     """Add easyconfig parameters custom to imkl (e.g. interfaces)."""
     extra_vars = {
         'interfaces': [True, "Indicates whether interfaces should be built", CUSTOM],
     }
     return IntelBase.extra_options(extra_vars)
예제 #31
0
 def extra_options():
     extra_vars = {"preferredmpi": ["impi3", "Preferred MPI type", CUSTOM]}
     return IntelBase.extra_options(extra_vars)
예제 #32
0
 def extra_options():
     extra_vars = [('interfaces', [True, "Indicates whether interfaces should be built (default: True)", CUSTOM])]
     return IntelBase.extra_options(extra_vars)
예제 #33
0
 def extra_options():
     extra_vars = [('preferredmpi', ['impi3', "Preferred MPI type (default: 'impi3')", CUSTOM])]
     return IntelBase.extra_options(extra_vars)
예제 #34
0
 def cleanup_step(self):
     """Cleanup step"""
     if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
         IntelBase.cleanup_step(self)
     else:
         ConfigureMake.cleanup_step(self)
예제 #35
0
 def cleanup_step(self):
     """Cleanup step"""
     if self.toolchain.is_system_toolchain():
         IntelBase.cleanup_step(self)
     else:
         ConfigureMake.cleanup_step(self)
예제 #36
0
 def cleanup_step(self):
     """Cleanup step"""
     if self.toolchain.name == DUMMY_TOOLCHAIN_NAME:
         IntelBase.cleanup_step(self)
     else:
         ConfigureMake.cleanup_step(self)
예제 #37
0
 def extra_options():
     extra_vars = [
         ('preferredmpi',
          ['impi3', "Preferred MPI type (default: 'impi3')", CUSTOM])
     ]
     return IntelBase.extra_options(extra_vars)